-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Services API Design #120
Comments
Some what related, do we need to bring porkpie over to this GitHub org? |
w/r/t chullo, are there any more REST methods we need to setup? Or, do we move straight into the tunnel of abstraction? 😄 |
Here's a first pass that should get us up to the point we're at now, but without accepting anything Drupal specific. Comments/critiques welcomed. Transaction ServiceUsed to start, commit, and rollback transactions. Endpoint: http://localhost:8080/islandora/transaction/ Actions:
Resource ServiceExposes basic CRUD operations on repository resources identified by a UUID. Endpoint: http://localhost:8080/islandora/resource/ Actions:
Collection ServiceConvienence operations for pcdm:Collections in Fedora 4. Endpoint: http://localhost:8080/islandora/collection/ Actions:
Object ServiceConvienence operations for pcdm:Objects in Fedora 4. Endpoint: http://localhost:8080/islandora/object/ Actions:
Membership ServiceOperations to add/remove members from pcdm:Objects and pcdm:Collections. Endpoints: http://localhost:8080/islandora/object/{uuid}/members http://localhost:8080/islandora/collection/{uuid}/members Actions: For brevity, only one of the two endponits is described in the following section.
File ServiceLists all files for a pcdm:Object. Endpoint: http://localhost:8080/islandora/object/{uuid}/files Actions:
Thumbnail ServiceCRUD operations for thumbnails Endpoint: http://localhost:8080/islandora/object/{uuid}/thumbnail Actions:
Preservation Master ServiceCRUD operations for preservation masters Endpoint: http://localhost:8080/islandora/object/{uuid}/preservationMaster Actions:
|
@ruebot We'll start out by abstracting a Fedora response and having Chullo work at that sort of 'raw' level from Fedora. Then these individual services will provide utility functions that resemble what Chullo does right now. Those utility functions will then be exposed in a micro-framework actually implement the REST service. We'll be essentially building a new porkpie from the ground up. It may end up being too much for a single library. I'm playing it by ear until we can implement some stuff. Then we'll pull it out into a separate library if there appears to be a lot of commonality. Let's talk about the API first, though :D |
@daniel-dgi Excellent. Thanks for this! I'm understanding things a lot better now. ...my only critique/feedback for now, would be that we should probably just rename some of the services base on the PCDM use extension:
...might be splitting hairs. But consistency is good, right 😃 |
@daniel-dgi and @ruebot, i think it's great. Will triple store operations be handled also as a service? Thanks! |
@DiegoPino I am assuming that the Also, @daniel-dgi I saw you put in return code for the
Is that an oversight or perhaps too early to worry about. |
@whikloj I haven't thought them through all the way. Just throwing this out there to get the conversation started. We'll need to work through detailed response scenarios together. Most of them just mirror what the Fedora 4 API returns, but we are on the hook for the membership, file, and derivative services. |
@ruebot we could also just go back to our old datastream names (OBJ, TN) etc... I wasn't sure what to put. To be honest, i'm not happy with even 'preservationMaster' because I think it's tool long and i don't like camel-case (or capital letters, period) within urls. |
@DiegoPino figured we'd just expose the triplestore endpoint directly in a read only fashion. writes and other things should happen behind the scenes in the service or asynchronously in response to a message. |
FYI, Google doc with all this is here |
👍 |
@DiegoPino @whikloj should we bring that Google Doc into the the Project Plan doc? Make it an appendix? |
@ruebot, yeah, that is a good idea. It's somehow lost in the forum right now. |
👍 |
So Hydra's starting to think about what a middleware layer API for PCDM models would look like, so I wanted to ask a couple questions:
|
Hi @tpendragon, That being said:
All of this being said, we are now 10 days from having a tech lead (👏 ). So...he (or @DiegoPino) will probably be much better able to answer your questions. |
In preparation for the next community sprint, we'll be overhauling the middleware services to utilize PHP. While we're at it, we're reconsidering the API design in general, and are attempting to move away from Drupal specific inputs to standardizing on RDF generated from Drupal.
Please use this issue to discuss what features we really want out of services (Fedora API extensions, PCDM CRUD Operations, etc...), and what we think the interface should look like (e.g. route structure, required and optional arguments, etc...).
The text was updated successfully, but these errors were encountered: