5.7 KiB
API Endpoints
When you create a Content Type
you will have a certain number of REST API endpoints available to interact with it.
As an example let's consider the Restaurant
Content Type for the next steps.
Restaurant
Content Type
Fields | Type | Description | Options |
---|---|---|---|
name | string | Restaurant's title | |
cover | media | Restaurant's cover image | |
opening_hours | group | Restaurant's opening hours group | repeatable |
Opening_hours
Group
Fields | Type | Description |
---|---|---|
day_interval | string | Meta's day interval |
opening_hour | string | Meta's opening hour |
closing_hour | string | Meta's closing hour |
Endpoints
Method | Path | Description |
---|---|---|
GET | /restaurants | Get a list of restaurants |
GET | /restaurants/count | Count restaurants |
POST | /restaurants | Create a restaurant |
GET | /restaurants/:id | Get a specific restraurant |
DELETE | /restaurants/:id | Delete a restaurant |
PUT | /restaurants/:id | Update a restaurant |
GET /restaurants
Returns the restaurants matching the query filters. You can read more about parameters here.
Example request
GET http://localhost:1337/restaurants
Example response
[
{
"id": 1,
"name": "Restaurant 1",
"cover": {
"id": 1,
"url": "/uploads/3d89ba92f762433bbb75bbbfd9c13974.png"
//...
},
"opening_hours": [
{
"id": 1,
"day_interval": "Tue - Sat",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
}
//...
]
}
]
GET /restaurants/count
Returns the count of restaurants matching the query filters. You can read more about parameters here.
Example response
1
POST /restaurants
Creates a restaurant and returns its value.
Example request
POST http://localhost:1337/restaurants
{
"title": "Restaurant 1",
"cover": 1,
"opening_hours": [
{
"day_interval": "Tue - Sat",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
}
]
}
Example response
{
"id": 1,
"title": "restaurant 1",
"cover": {
"id": 1,
"url": "/uploads/3d89ba92f762433bbb75bbbfd9c13974.png"
//...
},
"opening_hours": [
{
"id": 1,
"day_interval": "Tue - Sat",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
}
]
}
GET /restaurants/:id
Returns a restaurant by id.
Example request
GET http://localhost:1337/restaurants/1
Example response
{
"id": 1,
"title": "Restaurant 1",
"cover": {
"id": 1,
"url": "/uploads/3d89ba92f762433bbb75bbbfd9c13974.png"
//...
},
"opening_hours": [
{
"id": 1,
"day_interval": "Tue - Sat",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
}
]
}
PUT /restaurants/:id
Partially updates a restaurant by id and returns its value.
Fields that aren't sent in the query are not changed in the db. Send a null
value if you want to clear them.
Example request
PUT http://localhost:1337/restaurants/1
{
"title": "Restaurant 1",
"opening_hours": [
{
// adding a new item
"day_interval": "Sun",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
},
{
// editing one of the previous item by passing its id
"id": 1,
"day_interval": "Mon - Sat",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
}
]
}
Example response
{
"id": 1,
"title": "Restaurant 1",
"cover": {
"id": 1,
"url": "/uploads/3d89ba92f762433bbb75bbbfd9c13974.png"
//...
},
"opening_hours": [
{
"id": 1,
"day_interval": "Mon - Sat",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
},
{
"id": 2,
"day_interval": "Sun",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
}
]
}
DELETE /restaurants/:id
Deletes a restaurant by id and returns its value.
Example request
DELETE http://localhost:1337/restaurants/1
Example response
{
"id": 1,
"title": "Restaurant 1",
"cover": {
"id": 1,
"url": "/uploads/3d89ba92f762433bbb75bbbfd9c13974.png"
//...
},
"opening_hours": [
{
"id": 1,
"day_interval": "Mon - Sat",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
},
{
"id": 2,
"day_interval": "Sun",
"opening_hour": "7:30 PM",
"closing_hour": "10:00 PM"
}
]
}
::: tip
Whether you are using MongoDB or a SQL database you can use the field id
as described in this documentation. It will be provided in both cases and work the same way.
:::