๐ Introduction
Welcome to the aPizza.space API! This API offers an interactive and dynamic environment for developers to explore, test, and learn how to integrate APIs into their front-end applications. Whether you are new to front-end development or honing your skills with a new framework, this API provides a perfect sandbox to practice making HTTP requests. You can consume real-world data, including recipes, ingredients, kitchenware, and more, allowing you to simulate practical use cases like creating, updating, and retrieving data. With endpoints that cover a wide variety of food-related data, including recipe types, regions, countries, and nutrition facts, you can experiment with different data formats and HTTP methods. This API not only provides the opportunity to enhance your understanding of APIs but also enables you to test and troubleshoot requests in a controlled, hands-on environment. Perfect for developers learning how to manage state, handle responses, and build robust applications with real-time data. Whether you're testing a new front-end framework, practicing your HTTP client skills, or building your next project, aPizza.space is your go-to resource for practicing API consumption in an engaging and accessible way. So, go ahead, make requests, build your skills, and get ready to tackle real-world challenges!
๐ Getting Started
APIzza gives you a fun, hands-on way to explore how real APIs work. Whether you're just starting out or trying a new front-end framework, this API sandbox lets you practice making all four major HTTP request types: GET, POST, PUT, and DELETE. ๐ GET requests are used to fetch data from the database. Want to get all recipes? Use something like /recipes/. Need one specific item? Add an ID, like /recipes/1. Just keep in mind, not every endpoint supports fetching a single itemโcheck the documentation for details! POST is for adding new data. You can insert a new row into a table, but only if that table allows itโagain, the docs are your guide. PUT lets you update existing records. Youโll need the ID of the item plus the new data you want to send. Finally, DELETE removes a recordโbut not always. Some rows are "private" and canโt be deleted. These were added by me, the admin, and are protected from deletion. So if a delete request doesnโt work, donโt worryโitโs likely one of those. There are also a few constraints in place, especially in the tblRecipes table. If a related foreign key gets deleted or updated, the database is set to do nothingโthis helps avoid breaking relationships between tables. Even though the database is pretty simple, if you ever need a special view or functionality, just let me know! Iโm happy to create a stored procedure if it makes sense. At the end of the day, this is your playground. Use the documentation as a guide, experiment with tools like Postman, and most importantlyโstart connecting this API to your own frontend projects. Have fun and keep building! ๐ป๐ด
๐ Base URL
The base URL serves as the root endpoint for all API requests. When making requests to APIzza, please ensure you use the following URL:
https://apizza.space or https://www.apizza.space.
๐ Authentication
APIzza is an openly accessible API that does not require authentication for data retrieval. As such, the available operations are not limited to data retrieval via GET requests. If you identify any inaccuracies in the data, please contact the administrator via email.
๐ JSON Schema
APIzza is designed to help you practice sending and receiving data using all four common HTTP methods: GET, POST, PUT, and DELETE. Each endpoint has its own rules, and depending on the resource, you may be able to retrieve all records, add new entries, update existing ones, or delete them. The examples below demonstrate how you can interact with the API. Each resource includes the available methods, example URLs, and sample JSON bodies where necessary. You can use this guide to test the API with tools like Postman or integrate it with any frontend framework you're learning โ such as Angular, React, or Vue โ to practice building full-stack features.
๐ Recipe Types{
"method": "GET",
"endpoint": "/recipetypes/"
} ๐ณ Kitchenware {
"GET": "/kitchenware/",
"POST": {
"endpoint": "/kitchenware/",
"body": {
"created_at": "2025-04-08T05:55:59+00:00",
"kitchenware": "Air Fryer",
"recipeId": 1
}
},
"PUT": {
"endpoint": "/kitchenware/{id}",
"body": {
"created_at": "2025-04-08 07:19:00+00",
"kitchenware": "two pair of plastic gloves",
"recipeId": "1"
}
},
"DELETE": "/kitchenware/{id}"
} ๐ฅฆ Nutrifacts {
"GET": "/nutrifacts/",
"POST": {
"endpoint": "/nutrifacts/",
"body": {
"created_at": "2025-04-08T20:32:00+00:00",
"calories": "513 kcal",
"fat": "42g",
"protein": "31g",
"recipeId": "1"
}
},
"PUT": {
"endpoint": "/nutrifacts/{id}",
"body": {
"created_at": "2025-04-08T20:32:00+00:00",
"calories": "513 kcal",
"fat": "42g",
"protein": "31g",
"recipeId": "1"
}
},
"DELETE": "/nutrifacts/{id}"
} ๐ Directions {
"GET": "/directions/",
"POST": {
"endpoint": "/directions/",
"body": {
"direction": "Cut the wings apart if they aren't separated...",
"stepNumber": 1,
"recipeId": 1
}
},
"PUT": {
"endpoint": "/directions/{id}",
"body": {
"direction": "Cut the wings apart if they aren't separated...",
"stepNumber": 1,
"recipeId": 1
}
},
"DELETE": "/directions/{id}"
} ๐
Ingredients {
"GET": "/ingredients/",
"POST": {
"endpoint": "/ingredients/",
"body": {
"ingredient": "chicken wings",
"quantity": "2 pounds",
"recipeId": 1
}
},
"PUT": {
"endpoint": "/ingredients/{id}",
"body": {
"ingredient": "chicken wings",
"quantity": "2 pounds",
"recipeId": 1
}
},
"DELETE": "/ingredients/{id}"
} ๐ Regions {
"GET": "/regions/",
"POST": {
"endpoint": "/regions/",
"body": {
"region": "far eastern"
}
},
"PUT": {
"endpoint": "/regions/{id}",
"body": {
"region": "new value"
}
},
"DELETE": "/regions/{id}"
} ๐ Countries {
"GET": "/countries/",
"POST": {
"endpoint": "/countries/",
"body": {
"country": "Canada",
"region": 4
}
},
"PUT": {
"endpoint": "/countries/{id}",
"body": {
"country": "new country name",
"region": 3
}
},
"DELETE": "/countries/{id}"
} ๐ Recipes {
"GET": "/recipes/",
"GET_ID": "/recipes/{id}",
"POST": {
"endpoint": "/recipes/",
"body": {
"name": "Garlic Butter Pasta",
"image": "https://littlesunnykitchen.com/wp-content/uploads/Garlic-Butter-Pasta-1-360x360.jpg",
"servings": "1",
"country": "2",
"region": "3",
"type": "2"
}
},
"PUT": {
"endpoint": "/recipes/3",
"body": {
"name": "Garlic Butter Pasta",
"image": "https://littlesunnykitchen.com/wp-content/uploads/Garlic-Butter-Pasta-1-360x360.jpg",
"servings": "1",
"country": "2",
"region": "3",
"type": "2"
}
},
"DELETE": "/recipes/{id}"
}๐ Searching
Searching lets you explore the contents of each table in the API. You can perform a GET request to fetch all the rows from a tableโjust type the desired endpoint and hit the request button! For example, if you want to retrieve all countries, youโd type:
/countriesYou can also retrieve a single recipe by providing its ID, like this:
/recipes/1Just remember: always start your input with a forward slash (/). This format ensures your request is routed correctly. Whether you're exploring countries, ingredients, or recipes, the API is here to help you practice and experiment with real data!
Database Structure
๐ฝ Recipe Types
Learn about different recipe types in the API.
{
"id": "bigint",
"type": "varchar"
}๐ช Kitchenware
List of kitchenware tools available in the API.
{
"id": "bigint",
"created_at": "timestamp with time zone",
"kitchenware": "varchar",
"recipeId": "bigint"
}๐ฅฆ Nutrition Facts
Details on nutritional information for each recipe.
{
"id": "bigint",
"created_at": "timestamp with time zone",
"calories": "varchar",
"fat": "varchar",
"protein": "varchar",
"recipeId": "varchar"
}๐ Directions
Cooking directions for each recipe.
{
"id": "bigint",
"direction": "varchar",
"stepNumber": "bigint",
"recipeId": "bigint"
}๐ Ingredients
Ingredients list for recipes available in the API.
{
"id": "bigint",
"ingredient": "varchar",
"quantity": "varchar",
"recipeId": "bigint"
}๐บ๏ธ Regions
Different regions available in the API.
{
"id": "bigint",
"region": "varchar",
"private": "boolean"
}๐ Countries
Information about countries included in the API.
{
"id": "bigint",
"country": "varchar",
"region": "bigint",
"private": "boolean"
}๐ Recipes
Explore all the available recipes from the API.
{
"id": "bigint",
"name": "varchar",
"country": "bigint (nullable)",
"image": "varchar",
"region": "bigint (nullable)",
"servings": "bigint",
"type": "bigint",
"private": "boolean (nullable)"
}