...
Additionally, let's assume that Fedora's REST API exposed URIs for the methods expressed in these SDefs as follows:
{{[ Wiki Markup http://(fedora.server)/services/(object-pid)/(sdef-pid)/(method)
]\[/additional
\]
}}unmigrated-wiki-markup
...where \where [/additional\] could be parameters, or additional path elements in the URI.
For example, one of our service methods above would look like http://example.org/fedora/services/demo:SmileyStuff/atom:Collection/entries
...
So far, we've really only discussed the public "interfaces" of AtomPub in a writable CMA - the SDefs, URIs, and data formats. Let us now take a look at all CMA and instance objects together, and see if we can map our desired functionality on to them.
Image item model: (augments capabilities in demo:DualResImage)
Code Block |
---|
pid: thought-expdemo:ImageItemInstanceDualResImage relationship.hasService: thought-exp:ImageItem # New Atom functionality relationship.hasService: demo:DualResolution # Original Imageimage collection functionality relationship.hasModel: fedora-system:ContentModel-3.0 DS-COMPOSITE-MODEL: datastream: FULL_SIZE # from original demo:DualResImage datastream: MEDIUM_SIZE # from original demo:DualResImage datastream: RELS-EXT: # from original demo:DualResImage datastream: DC # from original demo:DualResImage |
Image item instance (one per image)
Code Block |
---|
pid: [item PID] datastream: MEDIUM_SIZE datastream: FULL_SIZE relationship.isMemberOfdatastream: [collection PID] DC relationship.isMemberOf [collection PID] # de facto, see image collection demo objects relationship.hasModel: thought-expdemo:ImageItemInstanceDualResImage |
Image item SDef:
Code Block |
---|
pid: thought-exp:ImageItem method: service # APP Service document for one image collection method: feed # atom Image Collection feed relationship.hasModel atom:DomainModel # to have atom:Domain/feeds relationship.hasModel fedora-system:ServiceDefinition-3.0 |
...
Code Block |
---|
pid: thought-exp:ImageItemInstanceImpl relationship.isDeploymentOf: thought-exp:ImageItem relationship.isContractorOf: thought-expdemo:ImageItemInstanceDualResImage relationship.hasModel: fedora-system:ServiceDeployment-3.0 |
Image collection model:
Code Block |
---|
pid: thought-expdemo:ImageCollectionInstanceDualResImageCollection relationship.hasService: thought-exp:ImageCollection # Adds atom collection functionality relationship.hasModel: fedora-system:ContentModel-3.0 DS-COMPOSITE-MODEL: datastream: thought-exp.imageCollectionEntryimageCollection.ATOM_SERVICE datastream: QUERY # from original demo:DualResImageCollection datastream: XSLT # from original demo:DualResImageCollection datastream: LIST # from original demo:DualResImageCollection |
Image collection instance:
Code Block |
---|
pid: [collection PID] |
Image collection SDef:
...
relationship.hasModel demo:DualResImageCollection
datastream: QUERY
datastream: XSLT
datastream: LIST
datastream: thought-exp.ImageCollection.ATOM_SERVICE
|
atom image collection SDef:
Code Block |
---|
atom image Image collection SDep:
Code Block |
---|
...