Проект «Рецепты» — приложение, с помощью которого пользователи будут публиковать рецепты, добавлять чужие рецепты в избранное и подписываться на публикации других авторов. Пользователям сайта также будет доступен сервис «Список покупок». Он позволит создавать список продуктов, которые нужно купить для приготовления выбранных блюд. У будущего веб-приложения уже есть готовый фронтенд — это одностраничное SPA-приложение, написанное на фреймворке React. Файлы, необходимые для его сборки, хранятся в репозитории foodgram-project-react в папке frontend.
Foodgram API - это часть проекта «Рецепты», который предоставляет API для работы с рецептами, ингредиентами и списками покупок. С помощью этого API вы можете создавать, редактировать, просматривать и удалять рецепты, а также получать списки покупок на основе ваших рецептов.
- Управление рецептами: Создание, редактирование, просмотр и удаление рецептов.
- Ингредиенты и теги: Получение информации об ингредиентах и добавление тегов к рецептам.
- Списки покупок: Генерация списка покупок на основе выбранных рецептов.
- Подписки на авторов: Возможность подписываться на других пользователей и следить за их новыми рецептами.
-
Клонируйте репозиторий:
git clone https://github.com/artemmikh/foodgram-project-react.git
-
Создайте и активируйте виртуальное окружение:
python -m venv venv source venv/bin/activate
-
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл
.env
в корне проекта с таким содержимым:POSTGRES_USER=user POSTGRES_PASSWORD=password POSTGRES_DB=django DB_HOST=db DB_PORT=5432 DB_NAME=foodgram_db SECRET_KEY=django-insecure-EXAMPLE
-
Примените миграции:
python manage.py migrate
-
Запустите сервер:
python manage.py runserver
-
Перейдите по адресу http://localhost:8000/ в своем браузере.
Документация API доступна по адресу http://localhost:8000/api/docs/. Здесь вы найдете подробную информацию о доступных эндпоинтах, параметрах запросов и примерах.
Получение списка рецептов:
GET "http://localhost:8000/api/recipes/"
Пример ответа:
{
"count": 123,
"next": "http://foodgram.example.org/api/recipes/?page=4",
"previous": "http://foodgram.example.org/api/recipes/?page=2",
"results": [
{
"id": 0,
"tags": [
{
"id": 0,
"name": "Завтрак",
"color": "#E26C2D",
"slug": "breakfast"
}
],
"author": {
"email": "[email protected]",
"id": 0,
"username": "string",
"first_name": "Вася",
"last_name": "Пупкин",
"is_subscribed": false
},
"ingredients": [
{
"id": 0,
"name": "Картофель отварной",
"measurement_unit": "г",
"amount": 1
}
],
"is_favorited": true,
"is_in_shopping_cart": true,
"name": "string",
"image": "http://foodgram.example.org/media/recipes/images/image.jpeg",
"text": "string",
"cooking_time": 1
}
]
}