curl --request POST \
--url https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Carrot",
"in_stock_qty": 3,
"price": 999
}
'import requests
url = "https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients"
payload = {
"name": "Carrot",
"in_stock_qty": 3,
"price": 999
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Carrot', in_stock_qty: 3, price: 999})
};
fetch('https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Carrot',
'in_stock_qty' => 3,
'price' => 999
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients"
payload := strings.NewReader("{\n \"name\": \"Carrot\",\n \"in_stock_qty\": 3,\n \"price\": 999\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Carrot\",\n \"in_stock_qty\": 3,\n \"price\": 999\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Carrot\",\n \"in_stock_qty\": 3,\n \"price\": 999\n}"
response = http.request(request)
puts response.read_body{
"id": "674d0bf5c28b69001f8e03a1",
"created_at": "2024-04-22T10:00:00Z",
"updated_at": "2024-04-22T10:00:00Z",
"name": "Carrot",
"in_stock_qty": 3,
"price": 999
}{
"title": "Human-readable error title.",
"detail": "Human-readable error details."
}{
"title": "Human-readable error title.",
"detail": "Human-readable error details."
}Create an ingredient
Ccreate an ingredient with a name, price, and in_stock_qty. Ingredients will be associated with specific dishes.
The id in the response is used retrieve the ingredient resource, which is most commonly used to check the in_stock_qty value for tracking ingredient inventory and determining if a dish is available to order in the client app.
curl --request POST \
--url https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Carrot",
"in_stock_qty": 3,
"price": 999
}
'import requests
url = "https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients"
payload = {
"name": "Carrot",
"in_stock_qty": 3,
"price": 999
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Carrot', in_stock_qty: 3, price: 999})
};
fetch('https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Carrot',
'in_stock_qty' => 3,
'price' => 999
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients"
payload := strings.NewReader("{\n \"name\": \"Carrot\",\n \"in_stock_qty\": 3,\n \"price\": 999\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Carrot\",\n \"in_stock_qty\": 3,\n \"price\": 999\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://reimagined-journey-g45xxv4v6gwhvrrr-80.app.github.dev/ingredients")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Carrot\",\n \"in_stock_qty\": 3,\n \"price\": 999\n}"
response = http.request(request)
puts response.read_body{
"id": "674d0bf5c28b69001f8e03a1",
"created_at": "2024-04-22T10:00:00Z",
"updated_at": "2024-04-22T10:00:00Z",
"name": "Carrot",
"in_stock_qty": 3,
"price": 999
}{
"title": "Human-readable error title.",
"detail": "Human-readable error details."
}{
"title": "Human-readable error title.",
"detail": "Human-readable error details."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The request body to create an ingredient to be included with dishes requires the following properties: name, price, and in_stock_qty.
The ingredient name to display in the client app.
"Carrot"
The quantity of the ingredient currently in stock. This field is used to track the ingredient inventory. If the ingredient is essential and has a value of 0, the associated dish cannot be ordered via the client app.
3
The price used by the client app to calculate order cost.
999
Response
Ingredient created successfully
A unique alpha-numeric string generated by the system when creating a resource (e.g., dishes, ingredients, etc). Ids are required for retrieving the properties of a specific resource.
"674d0bf5c28b69001f8e03a1"
The date and time the resource was created. Timestamp uses ISO 8601 format, Ex: 2025-04-05T14:55:03.824Z
"2024-04-22T10:00:00Z"
The date and time the resource was last updated.
Timestamp uses ISO 8601 format, Ex: 2025-04-05T14:55:03.824Z
"2024-04-22T10:00:00Z"
The name of the ingredient that will appear in the client app.
"Carrot"
The quantity of the ingredient currently in stock. This field is used to track the ingredient inventory. If the ingredient is essential and has a value of 0, the associated dish cannot be ordered via the client app.
3
The price used by the client app to calculate order cost.
999