Added file repository feature to API

This commit is contained in:
Timo Ley 2022-08-30 16:11:03 +02:00
parent bc24466b0c
commit 30e93f7621
3 changed files with 59 additions and 0 deletions

View file

@ -5,6 +5,7 @@
# API
- [AddonScript API](api/README.md)
- [File repository](api/features/files.md)
# Schema

View file

@ -71,4 +71,5 @@ be in a namespace-like format (reversed domain name).
These API features are part of the AddonScript specification itself:
- `files`: [File repository](./features/files.md)
- To be added

View file

@ -0,0 +1,57 @@
# File Repository
## Endpoints
### `GET {base URL}/v1/files/:namespace/:addon/:version/:qualifier`
This endpoint can be used to retrieve information about a specific file.
If the instance don't know this file, it must respond with status code 404.
#### Path variables:
- `namespace`: The [canonical namespace](../../concepts/namespaces.md#canonical-namespaces)
of the addon to which the file belongs to
- `addon`: The addon ID of the addon to which the file belongs to
- `version`: The addon version to which the file belongs to
- `qualifier`: The qualifier of the file
#### Example response:
```json
{
"links": ["https://example.com/file.jar"],
"filename?": "file.jar",
"hashes": {
"sha1": "somesha1checksum"
},
"meta": {
"additional": {}
}
}
```
### `GET {base URL}/v1/files/:algorithm/:hash`
This endpoint can be used to retrieve information about a file from the hash value of the file.
If the instance can't find the file by the hash or does not know the specified hash algorithm,
it must respond with status code 404.
#### Path variables:
- `algorithm`: The hash algorithm of the hash
- `hash`: The hash value of the file
#### Example response:
```json
{
"links": ["https://example.com/file.jar"],
"filename?": "file.jar",
"hashes": {
"sha1": "somesha1checksum"
},
"meta": {
"additional": {}
}
}
```