Re: [Specifications] External operations

Hi, thanks for your input! Actually, my idea about Hydra's operations was to somehow decouple the operations part of the spec, from other parts like the structure of the data or the structure of other metadata (like links). The idea comes from my conceptual idea of MicroTypes (more info on [1] and [2]).

I can see 2 improvements: In the first step (described in (1)), is to have dereferencable links. The second step (explained in (2)), is to support different, alternative operations descriptions, using different relation types (as explained in RFC8288).

To elaborate more:
1) Today I have a client that understands pretty well Hyda's operations. By providing the operations on the side, using an IRI, the client could fetch them whenever is needed and we don't have to provide them always on the same document. I think this alone has many advantages that are obvious and personally I think all APIs should be like that (that's a personal opinion though, expressed in detail in [3]), but if it's not obvious to everyone let me know, I can expand on that :)

2) Tomorrow I want to have a client that supports more advanced operations. Hydra limits me to do that. I mean, Hydra is really good now, but as always nothing is timeless. So we need to provide a way to the client to let it know that hey! we also support operations V2, that is more advanced and provide more cool things. But if you want V1, you can also have that. I think by adding such capabiltities to the Hydra spec, we make it much more robust.  Basically, dereferencable links, each one with different relation type (for distinguishing operations V1, V2 etc).

The idea of (2) is to make the spec extensible, but not arbitrarily but instead provide a platform for the extensions to step on. (because in theory, I can just have another attribute key, like `operationsV2` and have there all my new logic, but that's not a good solution because we want to have a common API for all operations specs)

I hope I made my self clear, if not let me know where I should expand :)

[1] https://introspected.rest/#92-microtypes-reusable-modules-composing-a-media-type
[2] https://www.youtube.com/watch?v=pc8ZyFjJY4A
[3] https://introspected.rest

-- 
GitHub Notification of comment by vasilakisfil
Please view or discuss this issue at https://github.com/HydraCG/Specifications/issues/146#issuecomment-342309505 using your GitHub account

Received on Monday, 6 November 2017 22:28:57 UTC