Requirements - ProfileNegotiation/I-D-Accept--Schema GitHub Wiki

Functional requirements

  • Indicating the profile of an entity body
    • A client or server should be able to indicate that an entity body conforms to a single profile. Added client to all of those: think http PUT or POST
    • A client or server should be able to indicate that an entity body conforms to multiple profiles.
    • A client or server should be able to indicate supported profiles of alternate representations.
  • Indicating the desired profiles
    • A client should be able to indicate which profiles it supports. Is this relevant for servers, too? PUT and POST
      • A client should be able to indicate which combinations of profiles it supports?
      • A client should be able to indicate which combinations of profiles and media types it supports?
    • A client should be able to indicate which profiles it prefers.
      • A client should be able to indicate which combination of profiles and media types it prefers?
  • Indicating that a profile is not supported
    • A server should be able to indicate that it does not support the requested profile.
    • A server should be able to indicate that it does not support the requested combination of media type and profile (even though it might support each of them individually or other combinations).

Non-functional requirements

  • Compatibility
    • A client that does not support this RFC should still be able to correctly identify the media type of the response.
    • An intermediary (proxy/cache) should understand the implications of profile-based negotiation on cacheability.
  • Linking profiles to schemas
    • An agent exploring a profile document should be able to find schemas implementing that profile (I'm not sure if this is functional or non-functional...).