Skip to content

Thoughts

Graham Cox edited this page Dec 29, 2016 · 2 revisions
  • Discovery
    • WebFinger
    • Introspection document at well known location (/.well-known/ump-configuration)
  • Authentication
    • Open well known URL in a web context
    • URL contains a redirect URI that is to be used at the end
    • Server does everything it needs to do
    • Server redirects web context to redirect URI, with an Access Token in the fragment
    • Essentially exactly OAuth2 Implicit Flow
  • User Registration / Management
    • Outside of scope of this document
    • Handle as part of authentication, or else outside of the protocol
  • REST Endpoints
    • Everything is done using hypermedia. No IDs, just links to other resources.
    • Character Management
      • GET /characters
        • Default filter is all of my characters.
      • GET /characters/
      • POST /characters
      • PUT /characters/
      • DELETE /characters/
    • Game Reference Data
      • GET /reference/character
      • GET /reference/races
      • GET /reference/classes
      • GET /reference/skills
      • GET /reference/stats
      • GET /reference/traits
    • Game Help
      • GET /help
      • Everything else is links between these documents
      • Support some well-known names - e.g. /help/getting-started
  • WebSocket Endpoint
    • Standard set of messages in each direction
    • Client -> Server
      • Authenticate - Very first message to send. Contains the Access Token to indicate who the connection is about
      • Command - A command from the character
      • Standard set of messages for standard commands - e.g. Move, Speak, etc.
    • Server -> Client
      • LocationChangedEvent - Indication that something about the current location, or the contents of it, has changed
      • CharacterChangedEvent - Indication that something about the current character has changed
      • Effect - Indication that some other event has occurred with a noticeable effect.
Clone this wiki locally