apiaryio / api-blueprint

API Blueprint
https://apiblueprint.org
MIT License
8.64k stars 2.14k forks source link

State Machine Description #290

Open zdne opened 8 years ago

zdne commented 8 years ago

Following the Resource Blueprint Concept the API Blueprint should offer description of the API state machine.

This will benefit both the conceptual design of an API and the testing of its implementation. Enabling next generation of tools such as powerful mocks or implementation generators.

If an API client is following the REST principles it is essential that it does not utilize any knowledge of the state machine as that should be driven completely by the server (HATEOAS).

# Resource Blog Post
- attributes

## Action Retrieve Blog Post
- relation: list (self)

## Action Edit Blog Post
- relation: edit

## Action Archive Blog Post
- relation: archive 

## Action Unarchive Blog Post
- relation: unarchive 

## States
- active
   - Affordances
       - list -> active
       - edit -> active
       - archive -> archived

- archived
    - Affordances
        - list -> archived
        - unarchive -> active

See the Resource Blueprint concept for details on the possible design of this feature.

Related issue #13

pksunkara commented 8 years ago

I know it is just a sketch but something like this would be better:

- archived
    - Affordances
        - list: archived
        - unarchive: active