Fedora API Spec and Delta Document Verification
3 Resource Management
3.1 General
- Empty section
3.1.1 LDP-NR creation
- SHOULD create an LDP-NR if creation request includes NonRDFSource type Link in headers, regardless of Content-Type headers: Untested
3.1.2 LDP Containers
- MUST be able to create LDP Containers: Tested in 3.3, working
- MUST distinguish between triple types: Untested
- MUST return 409 with constrainedBy Link in headers for ldp:contains membership predicate if server cannot distinguish between triple types (Contradictory?): Untested
- MAY permit ldp:contains membership predicate if server can distinguish between triple types: Untested
- SHOULD allow Prefer header in request to distinguish triple types if server can distinguish triple types: Untested
3.2 HTTP PATCH
- MUST be supported on LDP-RSs: Untested
- MUST support sparqlupdate: Untested
- MAY support other update types: Untested
- MUST return 4xx (409), with more info in body and constrainedBy Link in headers when modifying protected resource statements: Untested
- MUST return 2xx if successful: Untested
3.2.1 Interaction models
- MUST return 409 when modifying the interaction model to a type that is not a subtype of the current type (LDP-NR to LDP-RS or opposite?): Untested
3.3 HTTP POST
- MUST be supported on LDP Collections: Tested, working
- MUST include default interaction model in constrainedBy Link header: Untested
- MUST support creation of LDP-NRs: Tested, working
- MUST create and associate an LDP-RS when an LDP-NR is created: Tested, working
3.3.1 LDP-NRs
- MUST return 409 if request Digest header does not match calculated value for content of new LDP-NR: Tested, working
- SHOULD return 400 if request Digest header's type is not supported (Should 'type' be 'algorithm', like the RFC?): Tested, working
3.4 HTTP PUT
- MAY include type Link header in request: Untested
- MUST return 409 if request's type Link is not resource's current type or subtype thereof, or not in LDP namespace: Untested
- MUST change resource's type if request's type Link is a subtype of resource's current type: Untested
- MUST change resource's interaction model if request's type Link has an LDP interaction model: Untested
3.4.1 LDP-RSs
- MUST be supported on LDP-RSs for non-server-managed triples: Untested
- MUST return 4xx (409), with more info in body and constrainedBy Link in headers if request modifies server-managed triples (Are triples different than resource statements?) on a LDP-RS: Untested
3.4.2 LDP-NRs
- MUST be supported on LDP-NRs to replace binary content: Untested
- MUST return 409 if request Digest header does not match calculated value for new content of target LDP-NR: Untested
- SHOULD return 400 if request Digest header's type is not supported (Should 'type' be 'algorithm', like the RFC?): Untested
3.4.3 Creating resources with HTTP PUT
- Non-normative section
3.5 HTTP GET
- MUST return describes Link to LDP-NR if request is to associated LDP-RS: Tested, working
3.5.1 Additional values for the Prefer header
- MAY support PreferContainedDescriptions URI in Prefer header: Tested, NOT WORKING
- SHOULD support PreferInboundReferences URI in Prefer header: Untested
3.5.2 LDP-RSs
- MUST return Preference-Applied header if request's Prefer header is honored: Tested, working
3.5.3 LDP-NRs
- MUST return Digest header as directed by request's Want-Digest header: Tested, working
3.6 HTTP HEAD
- MUST NOT return a body: Tested, working
- SHOULD return same headers as if the request was a GET: Tested, working
- MUST return a Digest header if the same request as a GET would have: Tested, working
- MAY omit payload headers from response: Untested
3.7 HTTP DELETE
- MAY be supported: Untested
3.7.1 Depth header
- MUST support a Depth header in the request, if DELETE is implemented: Tested, working
- MAY support only certain Depth header values: Untested (How to query?)
- MUST return 400 if request includes Depth header and unsupported Depth header value: Untested (How to query?)
- MUST use LDP containment relations for recursive deletion, if recursive deletion is supported: Untested (How to query?)
3.8 External Binary Content
- MUST return message/external-body in Accept-Post header (for each supported access-type param of supported Content-Types) if external binary content is supported (In response to what?): Untested
- MUST return 415 for LDP-NR create or update if request has message/external-body and an unsupported access-type, or if external binary content is not supported: Untested
- MUST NOT accept request (return 4xx???) for LDP-NR create or update if request has message/external-body and the server cannot return all the required response headers: Untested
- SHOULD return a Content-Location header for LDP-NR GET or HEAD (read? to match create or update above) with a URI to the content if the server is proxying: Untested (How to query for proxying?)
- MAY support an expiration parameter (for LDP-NR create or update?) if the request has a message/external-body Content-Type header: Untested
- SHOULD copy content (for LDP-NR create or update?) if the request has a message/external-body Content-Type header and the expiration parameter is set: Untested
- MUST return 4xx or 5xx (for LDP-NR create or update?) if the request has a message/external-body Content-Type header and the expiration parameter cannot be accommodated: Untested
- MUST return a contrainedBy Link header (for LDP-NR create or update?) if the response status is 4xx: Tested in 3.2 and 3.3
3.8.1 Referenced RDF content in mandataory LDP serializations
- Non-normative section
3.8.2 Proxied content vs. redirected content
- Non-normative section