159 lines
3.0 KiB
Markdown
159 lines
3.0 KiB
Markdown
# Collections API
|
|
|
|
## Overview
|
|
|
|
The Collections API allows you to programmatically manage PocketBase collections, including creating, updating, deleting, and configuring collections.
|
|
|
|
## List Collections
|
|
|
|
```http
|
|
GET /api/collections
|
|
Authorization: Bearer {admin_token}
|
|
```
|
|
|
|
Response:
|
|
```json
|
|
{
|
|
"page": 1,
|
|
"perPage": 30,
|
|
"totalItems": 3,
|
|
"totalPages": 1,
|
|
"items": [
|
|
{
|
|
"id": "_pbc_344172009",
|
|
"name": "users",
|
|
"type": "auth",
|
|
"system": false,
|
|
"fields": [
|
|
{
|
|
"name": "email",
|
|
"type": "email",
|
|
"required": true,
|
|
"options": {
|
|
"exceptDomains": null,
|
|
"onlyDomains": null
|
|
}
|
|
},
|
|
{
|
|
"name": "verified",
|
|
"type": "bool",
|
|
"required": false
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": null,
|
|
"viewRule": null,
|
|
"createRule": null,
|
|
"updateRule": null,
|
|
"deleteRule": null,
|
|
"created": "2024-01-01 12:00:00Z",
|
|
"updated": "2024-01-10 08:30:00Z"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Get Single Collection
|
|
|
|
```http
|
|
GET /api/collections/{collectionId}
|
|
Authorization: Bearer {admin_token}
|
|
```
|
|
|
|
## Create Collection
|
|
|
|
```http
|
|
POST /api/collections
|
|
Content-Type: application/json
|
|
Authorization: Bearer {admin_token}
|
|
|
|
{
|
|
"name": "products",
|
|
"type": "base",
|
|
"fields": [
|
|
{
|
|
"name": "title",
|
|
"type": "text",
|
|
"required": true,
|
|
"options": {
|
|
"min": 1,
|
|
"max": 200
|
|
}
|
|
},
|
|
{
|
|
"name": "price",
|
|
"type": "number",
|
|
"required": true,
|
|
"options": {
|
|
"min": 0
|
|
}
|
|
}
|
|
],
|
|
"indexes": [],
|
|
"listRule": "status = 'published'",
|
|
"viewRule": "status = 'published'",
|
|
"createRule": "@request.auth.id != ''",
|
|
"updateRule": "@request.auth.role = 'admin'",
|
|
"deleteRule": "@request.auth.role = 'admin'"
|
|
}
|
|
```
|
|
|
|
## Update Collection
|
|
|
|
```http
|
|
PATCH /api/collections/{collectionId}
|
|
Content-Type: application/json
|
|
Authorization: Bearer {admin_token}
|
|
|
|
{
|
|
"name": "products",
|
|
"fields": [
|
|
{
|
|
"name": "title",
|
|
"type": "text",
|
|
"required": true
|
|
}
|
|
],
|
|
"indexes": [
|
|
"CREATE INDEX idx_products_title ON products (title)"
|
|
],
|
|
"listRule": "status = 'published'",
|
|
"updateRule": "@request.auth.role = 'admin'"
|
|
}
|
|
```
|
|
|
|
## Delete Collection
|
|
|
|
```http
|
|
DELETE /api/collections/{collectionId}
|
|
Authorization: Bearer {admin_token}
|
|
```
|
|
|
|
## Import Collections
|
|
|
|
```http
|
|
POST /api/collections/import
|
|
Content-Type: application/json
|
|
Authorization: Bearer {admin_token}
|
|
|
|
{
|
|
"collections": [
|
|
{
|
|
"name": "posts",
|
|
"type": "base",
|
|
"fields": [
|
|
{
|
|
"name": "title",
|
|
"type": "text"
|
|
}
|
|
],
|
|
"listRule": "",
|
|
"viewRule": "",
|
|
"createRule": "@request.auth.id != ''"
|
|
}
|
|
]
|
|
}
|
|
|
|
For the full set of fields and options, refer to the [official API Collections reference](https://pocketbase.io/docs/api-collections/).
|
|
**Note:** This is a placeholder file. See [core/collections.md](../core/collections.md) for comprehensive collection documentation.
|