Added API specification file
							parent
							
								
									924feb662d
								
							
						
					
					
						commit
						449c20fac2
					
				|  | @ -0,0 +1,41 @@ | |||
| # API Design | ||||
| 
 | ||||
| This file describes the API that the software adheres to. All routes are defined under a shared `api` namespace. | ||||
| 
 | ||||
| `(A)` means the route can only be accessed by an admin user. | ||||
| 
 | ||||
| ## v1 | ||||
| 
 | ||||
| ## Authentification | ||||
| 
 | ||||
| * POST `/auth/login` - generate new JWT & refresh token pair given user credentials | ||||
| * POST `/auth/refresh` - generate new JWT & refresh token pair given valid refresh token | ||||
| 
 | ||||
| ## Posts | ||||
| 
 | ||||
| * GET `/posts?<offset>&<limit>` - get list of posts from the default feed given offset & limit | ||||
| * GET `/posts?<section_id_or_shortname>&<offset>&<limit>` - get list of posts of a specific section | ||||
| * (A) POST `/posts` - create a new post | ||||
| * GET `/posts/<id_or_shortname>` - get a specific post | ||||
| * (A) DELETE `/posts/<id_or_shortname>` - delete a post | ||||
| * (A) PATCH `/posts/<id_or_shortname>` - patch a post | ||||
| 
 | ||||
| ## Sections | ||||
| 
 | ||||
| * GET `/sections?<offset>&<limit>` - get list of sections | ||||
| * GET `/sections/<id_or_shortname>` - get specific section | ||||
| * (A) POST `/sections` - create a new section | ||||
| * (A) PATCH `/sections/<id_or_shortname>` - patch a section | ||||
| * (A) DELETE `/sections/<id_or_shortname>` - delete a section (what happens with posts?) | ||||
| 
 | ||||
| ## Users | ||||
| 
 | ||||
| * (A) GET `/users?<offset>&<limit>` | ||||
| * (A) POST `/users` | ||||
| * (A) GET `/users/<id_or_username>` | ||||
| * (A) PATCH `/users/<id_or_username>` | ||||
| * (A) DELETE `/users/<id_or_username>` | ||||
| 
 | ||||
| ## Feeds | ||||
| 
 | ||||
| WIP | ||||
		Reference in New Issue