Skip to content

Back-end da aplicação Find My Recipes, que ajuda pessoas a fazerem pratos deliciosos com os ingredientes que tem em casa. Entrega final de conclusão do terceiro módulo do curso da Kenzie Academy Brasil (Q3), desenvolvido em grupo com os colegas Bernardo Costa, Gustavo Oliveira, Luan Diniz, Lucas Reiser e Murillo Torres Lopes.

Notifications You must be signed in to change notification settings

lsmescolotto/capstone-q3-find-my-recipes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API - CAPSTONE - FIND MY RECIPES


Este repositório destina-se ao projeto de conclusão, também chamado de Capstone, do Quarter 3 - Backend.

Será implementado em python com framework Flask e utilização do banco relacional PostgreSQL.

A proposta do projeto baseia-se na construção da API de acesso de outro projeto realizado no Capstone de conclusão de Frontend.

Em resumo o projeto de Frontend, acessível aqui, chama-se Find Recipes. É um site culinário, em que os visitantes tem possibilidade de cadastrar suas receitas, com moderação do Admin, e encontrar outras que sejam compatíveis com sua disponibilidade de ingredientes.



URL DA API

A url base da API é https://capstone-find-recipes.herokuapp.com



Enpoints

A API tem N endpoints diferentes, para criação, atualização, deleção e obtenção de usuários, receitas, ingredientes, favorito e comentários.



Users



Post/Register


POST/user

{
	"name": "kenzinho",
	"email": "kenzinho@mail.com",
	"password": "kenzie123"
}

Requisição bem sucedida retorna a seguinte resposta:

STATUS 201 - CREATED

{
	"name": "kenzinho",
	"email": "kenzinho@mail.com"
}


Post/Login


POST/user/login

{
	"email": "kenzinho@mail.com",
	"password": "kenzie123"
}

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

{
	"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTY1MTM2MTY2NSwianRpIjoiYTA2ZWMyNWMtYWU5Mi00MTIxLWE3ZWUtOWY5Yjk4Y2YxYjAwIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6eyJ1c2VyX2lkIjoiNGZlMWQxNzctMGFmOS00ZDA2LThlYzUtY2Q3NTIxZTMxOWFlIiwibmFtZSI6ImtlbnppbmhvIiwiZW1haWwiOiJrZW56aW5ob0BtYWlsLmNvbSJ9LCJuYmYiOjE2NTEzNjE2NjUsImV4cCI6MTY1MTM2MjU2NX0.0mX4CyLuC1D5qOQH-dQOA1qT7JexEuou1hy1Xcrcki0"
}


Get


Rota necessita de autenticação

GET/user

NO BODY

Requisição bem sucedida, retorna a seguinte resposta.

STATUS 200 - OK

{
	"user_id": "11a881f9-ddcc-4d5b-8ad8-704bdfc6217a",
	"name": "kenzinho jonson",
	"email": "kenzinho@mail.com",
	"links": {
		"recipes": "/user/11a881f9-ddcc-4d5b-8ad8-704bdfc6217a/recipe_by_user",
		"favorites_recipes": "/user/11a881f9-ddcc-4d5b-8ad8-704bdfc6217a/favorite_recipe",
		"feed": "/user/11a881f9-ddcc-4d5b-8ad8-704bdfc6217a/feed"
	}
}


Update


Rota necessita de autenticação

PATCH/user

{
	"name": "kenzinho jonson da silva"
}

Requisição bem sucedida.

STATUS 200 - OK

{
	"user_id": "11a881f9-ddcc-4d5b-8ad8-704bdfc6217a",
	"name": "kenzinho jonson da silva",
	"email": "kenzinho@mail.com",
	"links": {
		"recipes": "/user/11a881f9-ddcc-4d5b-8ad8-704bdfc6217a/recipe_by_user",
		"favorites_recipes": "/user/11a881f9-ddcc-4d5b-8ad8-704bdfc6217a/favorite_recipe",
		"feed": "/user/11a881f9-ddcc-4d5b-8ad8-704bdfc6217a/feed"
	}
}


Delete


Rota necessita de autenticação

DELETE/user/<user_id>

NO BODY

Requisição bem sucedida , sem retorno.

STATUS 204 - NO CONTENT


Recipes



Post


Rota necessita de autenticação

POST/recipe

{
		"title": "Arroz Doce",
		"time": "40 minutos",
		"type": "Sobremesa",
		"method": "Coloca arroz e leite dentro da panela e ferve",
		"serves": 5,
		"img_link": "https://claudia.abril.com.br/wp-content/uploads/2020/02/receita-arroz-doce-light.jpg?quality=85&strip=info",
		"ingredients":[
			{
				"title": "arroz",
				"unit": "GRAMA",
				"amount": 100
			},
			{
				"title": "leite",
				"unit": "LITRO",
				"amount": 2
			}
		]
}

Requisição bem sucedida retorna a seguinte resposta:

STATUS 201 - CREATED

{
	"recipe_id": 7,
	"title": "Arroz doce do jonson",
	"time": "40 minutos",
	"type": "Sobremesa",
	"method": "Coloca arroz e leite dentro da panela e ferve",
	"status": "MyEnum.NOT_VERIFIED",
	"serves": 5,
	"img_link": "https://claudia.abril.com.br/wp-content/uploads/2020/02/receita-arroz-doce-light.jpg?quality=85&strip=info",
	"user_id": 23471818027871931346858999649384407418,
	"ingredients": [
		{
			"ingredient_id": 1,
			"title": "arroz",
			"unit": [
				"g"
			],
			"amount": [,
				100.0
			]
		},
		{
			"ingredient_id": 6,
			"title": "leite",
			"unit": [
				"l"
			],
			"amount": [
				2.0,
			]
		}
	],
	"links": {
		"Show more": "/recipe/7"
	}
}


Get


GET/recipe

No body

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

[
	{
		"recipe_id": 6,
		"title": "Arroz Doce",
		"time": "40 minutos",
		"type": "Sobremesa",
		"method": "Coloca arroz e leite dentro da panela e ferve",
		"status": "MyEnum.NOT_VERIFIED",
		"serves": 5,
		"img_link": "https://claudia.abril.com.br/wp-content/uploads/2020/02/receita-arroz-doce-light.jpg?quality=85&strip=info",
		"user_id": 23471818027871931346858999649384407418,
		"ingredients": [
			{
				"ingredient_id": 1,
				"title": "arroz",
				"unit": [
					"kg",
					"g"
				],
				"amount": [
					2.0,
					100.0
				]
			},
			{
				"ingredient_id": 6,
				"title": "leite",
				"unit": [
					"l"
				],
				"amount": [
					2.0
				]
			}
		],
		"links": {
			"Show more": "/recipe/6"
		}
	}
]


Get by Id


GET/recipe/<recipe_id>

No body

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

{
	"recipe_id": 6,
	"title": "Arroz Doce",
	"time": "40 minutos",
	"type": "Sobremesa",
	"method": "Coloca arroz e leite dentro da panela e ferve",
	"status": "MyEnum.NOT_VERIFIED",
	"serves": 5,
	"img_link": "https://claudia.abril.com.br/wp-content/uploads/2020/02/receita-arroz-doce-light.jpg?quality=85&strip=info",
	"ingredients": [
		{
			"ingredient_id": 1,
			"title": "arroz",
			"unit": [
				"kg",
				"g"
			],
			"amount": [
				2.0,
				100.0
			]
		},
		{
			"ingredient_id": 6,
			"title": "leite",
			"unit": [
				"l"
			],
			"amount": [
				2.0
			]
		}
	]
}


Get by Ingredient


GET/recipe/ingredient?ingredient=leite

No body

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

{
	"recipes found with informed ingredients": [
		{
			"title": "Arroz Doce",
			"time": "40 minutos",
			"type": "Sobremesa",
			"serves": 5,
			"ingredients": [
				{
					"ingredient_id": 1,
					"title": "arroz",
					"unit": [
						"kg",
						"g"
					],
					"amount": [
						2.0,
						100.0
					]
				},
				{
					"ingredient_id": 6,
					"title": "leite",
					"unit": [
						"l"
					],
					"amount": [
						2.0
					]
				}
			],
			"links": {
				"Show more": "/recipe/6"
			}
		}
	]
}


Get by Category


Rota necessita de autenticação

GET/recipe/type/<type>

No body

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

[
	{
		"recipe_id": 6,
		"title": "Arroz Doce",
		"time": "40 minutos",
		"type": "Sobremesa",
		"method": "Coloca arroz e leite dentro da panela e ferve",
		"status": "MyEnum.NOT_VERIFIED",
		"serves": 5,
		"img_link": "https://claudia.abril.com.br/wp-content/uploads/2020/02/receita-arroz-doce-light.jpg?quality=85&strip=info",
		"user_id": 23471818027871931346858999649384407418,
		"ingredients": [
			{
				"ingredient_id": 1,
				"title": "arroz",
				"unit": [
					"kg",
					"g"
				],
				"amount": [
					2.0,
					100.0
				]
			},
			{
				"ingredient_id": 6,
				"title": "leite",
				"unit": [
					"l"
				],
				"amount": [
					2.0
				]
			}
		],
		"links": {
			"Show more": "/recipe/6"
		}
	}
]


Patch


Rota necessita de autenticação

PATCH/recipe/<recipe_id>

{
		"ingredients":[
			{
				"title": "arroz",
				"unit": "GRAMA",
				"amount": 100
			},
			{
				"title": "leite",
				"unit": "LITRO",
				"amount": 2
			},
			{
				"title": "canela",
				"unit": "UNIDADE",
				"amount": 10
			}
		]
}

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

{
	"recipe_id": 6,
	"title": "Arroz Doce",
	"time": "40 minutos",
	"type": "Sobremesa",
	"method": "Coloca arroz e leite dentro da panela e ferve",
	"status": "MyEnum.NOT_VERIFIED",
	"serves": 5,
	"img_link": "https://claudia.abril.com.br/wp-content/uploads/2020/02/receita-arroz-doce-light.jpg?quality=85&strip=info",
	"user_id": 23471818027871931346858999649384407418,
	"ingredients": [
		{
			"ingredient_id": 1,
			"title": "arroz",
			"unit": [
				"g"
			],
			"amount": [
				100.0
			]
		},
		{
			"ingredient_id": 6,
			"title": "leite",
			"unit": [
				"l"
			],
			"amount": [
				2.0
			]
		},
		{
			"ingredient_id": 8,
			"title": "canela",
			"unit": [
				"unidade"
			],
			"amount": [
				10.0
			]
		}
	],
	"links": {
		"Show more": "/recipe/6"
	}
}


Delete


Rota necessita de autenticação

DELETE/recipe/<recipe_id>

NO BODY

Requisição bem sucedida retorna a seguinte resposta:

STATUS 204 - NO CONTENT

{}


Favorites



Post


Rota necessita de autenticação

POST/favorites

{
	"recipes_id": 6
}

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

{
	"message": "successfully added"
}


Get


Rota necessita de autenticação

GET/user/<user_id>/favorite_recipe

NO BODY

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

[
	{
		"title": "Arroz Doce"
	}
]


Delete


Rota necessita de autenticação

DELETE/favorites/<recipe-id>

NO BODY

Requisição bem sucedida retorna a seguinte resposta:

STATUS 204 - NO CONTENT

{}


Feeds



Post


Rota necessita de autenticação

POST/feed

Icon não é um campo obrigatório.

{
	"publication": "A receita de arroz doce com cerveja fica top",
	"icon": "miranha"
}

Requisição bem sucedida retorna a seguinte resposta:

STATUS 201 - CREATED

{
	"user_name": "kenzinho jonson da silva",
	"feed_id": 3,
	"publication_date": "2022-05-04 15:37:31.095870",
	"publication": "A receita de arroz doce com cerveja fica top",
	"icon": "miranha"
}


Get


Rota necessita de autenticação

GET/feed

NO BODY

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

[
	{
		"user_name": "kenzinho",
		"feed_id": 1,
		"publication_date": "2022-05-04 11:52:05.230885",
		"publication": "4",
		"icon": null
	},
	{
		"user_name": "kenzinho jonson da silva",
		"feed_id": 2,
		"publication_date": "2022-05-04 15:36:31.185899",
		"publication": "A receita de arroz doce com cerveja fica top",
		"icon": null
	},
	{
		"user_name": "kenzinho jonson da silva",
		"feed_id": 3,
		"publication_date": "2022-05-04 15:37:31.095870",
		"publication": "A receita de arroz doce com cerveja fica top",
		"icon": "miranha"
	}
]


Get by Id


Rota necessita de autenticação

GET/feed/<post-id>

NO BODY

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

{
	"user_name": "kenzinho jonson da silva",
	"feed_id": 3,
	"publication_date": "2022-05-04 15:37:31.095870",
	"publication": "A receita de arroz doce com cerveja fica top",
	"icon": "miranha"
}


Patch


Rota necessita de autenticação

PATCH/feed/<post_id>

{
	"publication": "A receita de arroz doce com alcool fica top",
	"icon": "capetao america"
}

Requisição bem sucedida retorna a seguinte resposta:

STATUS 200 - OK

{
	"user_name": "kenzinho",
	"feed_id": 1,
	"publication_date": "2022-05-04 11:52:05.230885",
	"publication": "A receita de arroz doce com alcool fica top",
	"icon": "capetao america"
}


Delete


Rota necessita de autenticação

DELETE/feed/<post_id>

NO BODY

Requisição bem sucedida retorna a seguinte resposta:

STATUS 204 - NO CONTENT

{}

About

Back-end da aplicação Find My Recipes, que ajuda pessoas a fazerem pratos deliciosos com os ingredientes que tem em casa. Entrega final de conclusão do terceiro módulo do curso da Kenzie Academy Brasil (Q3), desenvolvido em grupo com os colegas Bernardo Costa, Gustavo Oliveira, Luan Diniz, Lucas Reiser e Murillo Torres Lopes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.7%
  • Other 1.3%