- From: Sam Goto <goto@google.com>
- Date: Mon, 3 Mar 2014 10:08:24 -0800
- To: Savas Parastatidis <Savas.Parastatidis@microsoft.com>
- Cc: Markus Lanthaler <markus.lanthaler@gmx.net>, "Jason Johnson (BING)" <jasjoh@microsoft.com>, W3C Web Schemas Task Force <public-vocabs@w3.org>, "public-hydra@w3.org" <public-hydra@w3.org>
- Message-ID: <CAMtUnc5icNFD5yEcdw2zVtzHaYnp7Nqk8=ivXu7BCV1bLau92g@mail.gmail.com>
On Thu, Feb 27, 2014 at 12:37 AM, Savas Parastatidis <
Savas.Parastatidis@microsoft.com> wrote:
> I would caution the use of OPTIONS.
>
> Why move beyond hypermedia? A representation of a resource (eg
> RestaurantX) may contain a link to a resource that provides more
> information about the actions that can be performed. Or those actions can
> be described as part of the representation. Or the representation may tell
> us that the resource is linked with the resource
> http://schema.org/Restaurant for which actions have be defined. Or…
>
>
I stated this elsewhere to Savas, but wanted to re-affirm it here: I'm 100%
in agreement here. I don't think OPTIONS can take us that far and the extra
round trip is not practical. I'm sorry if I misinterpreted my opinion
before, but just wanted to clarify here in case that happened.
Also, just as a larger distribution, I posted my thoughts on HTTP
invocation here (where I go over GET + hypermedia and where OPTIONS falls
short):
http://blog.sgo.to/2014/02/rows.html
> My point is that are multiple ways to represent information as a set of
> hypermedia resources without needing to us HTTP OPTIONS.
>
> I argue that we should stay in the realm of HTTP GET for our publishing
> needs :)
>
> Sent from Windows Mail
>
> *From:* Sam Goto <goto@google.com>
> *Sent:* Wednesday, February 26, 2014 6:36 AM
> *To:* Markus Lanthaler <markus.lanthaler@gmx.net>
> *Cc:* Jason Johnson (BING) <jasjoh@microsoft.com>, W3C Web Schemas Task
> Force <public-vocabs@w3.org>, public-hydra@w3.org
>
>
>
>
> On Fri, Feb 21, 2014 at 12:21 PM, Sam Goto <goto@google.com> wrote:
>
>>
>>
>>
>> On Mon, Feb 17, 2014 at 12:44 PM, Markus Lanthaler <
>> markus.lanthaler@gmx.net> wrote:
>>
>>> On Friday, February 14, 2014 7:11 PM, Sam Goto wrote:
>>> > On Fri, Feb 14, 2014 at 9:33 AM, Markus Lanthaler wrote:
>>> >>> 2) How would you be able to express that you CANNOT BuyAction on the
>>> >>> AndroidAppLink resource (e.g. your mobile app resource isn't as fancy
>>> >>> as your website)?
>>> >>
>>> >> That's something we would need to decide. I think in most cases
>>> >> these resources are not really exactly the same. Thus, I'm not
>>> >> sure whether it makes that much sense to "inherit" the operations
>>> >> from the Web resource. I think it would be sensible to require
>>> >> them to be declared separately. I don't think "expects" etc. are
>>> >> needed for apps, are they? If not, it's really just a short list of
>>> >> supported operations similar to the one in your example above, likely
>>> >> with min. version constraints etc.
>>> >
>>> > Not quite on both points.
>>> >
>>> > 1) Most often than not, these are the same resources. That's the basic
>>> > premise of the android-app://foobar.com/resource/1234 with
>>> rel=alternative
>>> > links.
>>>
>>> Fair enough. How do you thought of dealing different sets of operations
>>> then? You moved the list out from the action handler, didn't you?
>>>
>>>
>>
>> You'd have specific action handlers attached to the action. Example (of
>> a Movie that can be "watched" on android and "bought" via a webpage):
>>
>> {
>> @type: Movie
>> action: [{
>> @type: WatchAction
>> handler: {
>> @type: AndroidHandler
>> }
>> }, {
>> @type: BuyAction
>> handler: {
>> @type: WebPageHandler
>> }
>> }
>> ]
>> }
>>
>> How would we go about this using sameAs/alternate?
>>
>
> Here is an interesting idea:
>
> At run time, both android as well as HTTP allows you to "check" whether
> a specific operation is available in a specific resource (for HTTP that's
> an OPTIONS request).
>
> On Android, you can query the intent system to check whether a specific
> application listens to a specific intent. I think this should work, but I'm
> investigating. Here is a code snippet [1].
>
> Jason J, could you explore whether something like the following [1]
> would work for windows native applications?
>
> If we have "run-time" mechanisms to query these "operations", the App
> Url mechanism could potentially replace ActionHandlers (which I agree is
> overall a better design).
>
> Lets keep exploring this path.
>
> Additionally, anyone can think of any other challenge we may face with
> the change?
>
> [1]
>
> Intent intent = new Intent(WATCH_ACTION);
> intent.setDataUri("android-app://com.netflix/movies/1234");List<ResolveInfo> resolveinfo_list = activity.getPackageManager().queryIntentActivities(intent, 0);
> for(ResolveInfo info:resolveinfo_list){ if(info.activityInfo.packageName.equalsIgnoreCase(application_name)){
> launchComponent(info.activityInfo.packageName, info.activityInfo.name);
> break;
> }}
>
>
>
>>
>>
>>> > 2) "expects" apply to apps as much as web resources. as you are
>>> > "buying" an item on the web or in an app, things like your credit
>>> > card / quantity information needs to be passed either way. That
>>> > is, i'd expect to see things like
>>> > http://amazon.com/products/1234?action=buy&quantity=2 as much as
>>> > things like android-app://com.amazon/products/1234 with
>>> > putExtra("quantity", "2") in the intent extra bag.
>>>
>>> So you don't just open the specific screen in the app but you really
>>> carry out an operation (or at least pre-fill a form)? Where comes the data
>>> from to invoke the operation or pre-fill the form? Is there an intermediary
>>> UI (such as the review widget in Gmail)?
>>>
>>
>> Right, that's the review widget in gmail case.
>>
>>
>>>
>>>
>>>
>>> --
>>> Markus Lanthaler
>>> @markuslanthaler
>>>
>>>
>>>
>>
>
Received on Monday, 3 March 2014 18:08:52 UTC