akf-forum/APIDOCS.md

98 lines
2.5 KiB
Markdown
Raw Normal View History

# API documentation of Akf-forum
Akf-forum has got an API for AJAX, other clients etc.
## Authorization
You need this headers for send request to API:
2022-04-03 22:03:47 +03:00
```json
{
"username": "testUser",
"password": "testPassword"
}
```
But in front end, the API will works with session.
2022-09-17 16:27:01 +03:00
## Default Limits:
2022-09-17 00:27:38 +03:00
- 3 - 25 char for username, password and category name
- 256 char for user about and desp of category
- 5 - 128 char for thread titles.
- 5 - 1024 char for messages.
2022-09-17 16:44:04 +03:00
You can change them in config.json.
2022-09-17 16:44:04 +03:00
## How to request?
2022-08-11 01:11:07 +03:00
### Request types:
2022-09-17 16:44:04 +03:00
#### `/api/me`
2022-09-09 21:40:02 +03:00
- GET `/api/me` to get your account.
2022-09-17 16:44:04 +03:00
#### `/api/bans`
- GET `/` fetch all bans.
- GET `/:ip` fetch a ban.
- DELETE `/:ip` for unban an IP adress.
- POST `/?reason=flood` for ban an IP adress.
#### `/api/categories`
- GET `/` fetch all categories.
- GET `/:id` fetch a category
- PATCH `/:id` for update a category.
- DELETE `/:id` for delete a category.
- POST `/` for create a category.
#### `/api/messages`
- GET `/:id` for fetch message.
- DELETE `/:id` for delete message.
- PATCH `/:id` for edit message.
- POST `/:id/undelete` for undelete message.
- POST `/:id/react/:type` for react to a message.
- POST `/` for create message.
#### `/api/search` use `?limit=&skip=` for skip and limit
- GET `/users?q=query` find users.
- GET `/threads?q=query&authorID=not_required` find threads.
- GET `/messages?q=query&authorID=not_required` find messages.
#### `/api/threads`
- GET `/:id` for fetch thread.
- DELETE `/:id` for delete thread.
- PATCH `/:id` for edit thread.
- POST `/:id/undelete` for undelete thread.
- GET `/:id/messages?skip=0&limit=10` for fetch messages in thread.
- POST `/` for create thread.
#### `/api/users`
- GET `/:id` for fetch user.
- DELETE `/:id` for delete user.
- PATCH `/:id` for edit user.
- PUT `/:id` for add profile photo to user.
2022-09-09 17:13:37 +03:00
### Example request:
GET ```/api/messages/0```
#### Example API Output:
```json
{
"_id": "63067429bc01da866fad508b",
"threadID": "0",
"author": {
"id": "0",
"name": "Akif9748",
"avatar": "https://cdn.discordapp.com/avatars/539506680140922890/abd74d10aac094fc8a5ad5c86f29fdb9.png?size=1024",
"time": "2022-08-24T18:54:55.666Z",
"deleted": false,
"admin": false,
"_id": "630673ffbc01da866fad507b",
"__v": 0
},
"content": "deneme",
"deleted": false,
"edited": false,
"time": "2022-08-24T18:55:37.744Z",
"id": "0",
"__v": 0,
"react": {
2022-08-28 21:14:02 +03:00
"like": [0],
2022-08-31 14:44:28 +03:00
"dislike": []
},
2022-08-28 21:14:02 +03:00
"authorID": "0"
}
```