eolas-api/README.md
thomasabishop f5a1e3f1a8
All checks were successful
Deploy eolas-api / deploy (push) Successful in 22s
chore: update README with API endpoint docs
2025-10-13 18:50:38 +01:00

156 lines
2.5 KiB
Markdown

## Deployment
Deployment is automated via Forgejo action (see `.forgejo/workflows/deploy.yml`).
Deployment actions are always executed by the `deploy` user on the VPS.
On pushes to `main`:
- Automate versioning and Git tagging:
- Commit keyword corresponds to SemVer:
- Major: `major: <commit description>`,
- Minor: `feat: <commit description>`,
- Patch: `fix: <commit description>`
- Ignored keywords: `chore`, `test`, `refactor`, and anything else
- This updates the version in `package.json` and creates Git tag at this version.
- Install `rsync` on the `ubuntu-latest` runner, then:
- Rsync over SSH to copy changed files from this repository to VPS deployment directory, excluding
`.env`
- Restart eolas-api using `systemd`
## API
### Entries
#### Get all entries
Return all entries. Optionally limit by length and/or date.
```
GET /entries?limit=2&sort=date
```
```json
{
"count": 5,
"data": [
{
"title": "SSH",
"last_modified": "2025-07-10 14:26:04"
},
{
"title": "List_largest_files_bash",
"last_modified": "2025-07-07 16:49:12"
}
]
}
```
#### Get specific entry
```
GET /entries/Memory_versus_processor
```
```json
{
"title": "Memory_versus_processor",
"last_modified": "2024-10-18 19:17:01",
"size": 270,
"body": "# Memory versus processor\n\n Would a more powerful processor with average or reduced memory capacity..."
}
```
#### Get backlinks for an entry
Defaults to alphabetic list.
```
GET /entries/backlinks/The_kernel
```
```json
{
"count": 3,
"data": ["Boot_process", "Containerization", "CPU_architecture"]
}
```
#### Get outlinks for an entry
Defaults to alphabetic list.
```
GET /entries/outlinks/The_kernel
```
```json
{
"count": 3,
"data": ["Basic_model_of_the_operating_system", "Processes", "User_Space"]
}
```
#### Get entries associated with a specified tag
Optionally sort chronologically.
```
GET /entries/tag/memory?sort=date
```
```json
{
"count": 3,
"data": [
{
"entry_title": "Memory_addresses"
},
{
"entry_title": "Call_stack"
},
{
"entry_title": "The_memory_hierarchy"
}
]
}
```
### Tags
#### Get all tags
Sorted alphabetically.
```
GET /tags
```
```json
{
"count": 119,
"data": ["algebra", "algorithms", "analogue", "android", "..."]
}
```
#### Get tags for specified entry
```
GET /tags/The_kernel
```
```json
{
"count": 4,
"data": [
"computer-architecture",
"memory",
"operating-systems",
"systems-programming"
]
}
```