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.
:::
