API
This page lays out an idea for the client <-> instance API for the Catsup protocol. It will touch on ideas mentioned in fcs-1. This spec has NOT been approved by the rest of the team.
Written by Klara Bohringer.
[ UNFINISHED ]
Connection
This is a typical REST API implemented in HTTP over TLS, each non-login request is authenticated with the random-ass header of 'AUTHTOK'.
Classes
Authentication
Login
Type: POST
Relative URL: /auth/login
Expected input:
-
email: string
-
password: string
Responses:
-
401 (unauthenticated)
-
200 (body is token)
Logout
Type: POST
Relative URL: /auth/logout
Takes session token
Responses:
-
403
-
200
Nuke
Type: POST
Relative URL: /auth/nuke
Description: Removes all sessions
Takes session token
Responses:
-
400
-
403
-
200
Group management
Creation
Type: POST
Relative URL: /groups/create
Takes session token
Expected input:
-
name: string[32]
-
[ parent: global group identifier ]
Responses:
-
400
-
403
-
404
-
200
Editing
Type: POST
Relative URL: /groups/
Description: Takes full new group properties
Takes session token
Expected input: group object
Responses:
-
400
-
403
-
200
Creating invites
Type: POST
Relative URL: /groups/
Takes session token
Responses:
-
403
-
404
-
200 (invite is the entire body)
Invite info
Type: GET
Relative URL: /groups/invite/
Responses:
-
404
-
200 (returns group object)
Joining
Type: POST
Relative URL: /groups/invite/
Takes session token
Responses:
-
403
-
404
-
200