A API Alugueis é um projeto pessoal que simula o backend de uma empresa de aluguéis de imóveis (baseado na Seazone), o projeto conta com 3 APIs Restful, desenvolvidas utilizando o Framework Django com a linguagem Python.
Como rodar
Ambiente de desenvolvimento:
- Rode o comando
python3 -m venv env
para criar seu ambiente de desenvolvimento. - Rode o comando
env/Scripts/activate.bat
para acessar seu ambiente de desenvolvimento.
Dependencias:
- Rode o comando
pip install django
- Rode o comando
pip install django_rest_framework
- Rode o comando
pip install requests
Start up:
- Rode o comando
python3 manage.py makemigrations
- Rode o comando
python3 manage.py migrate
- Rode o comando
python3 manage.py seed
- Por fim rode o comando
python3 manage.py runserver
para startar a aplicação.
Testes:
- Rode o comando
python3 manage.py test
para rodas os testes da aplicação.
Imovel API
GET /imovel
- Retorna todos imoveis:
[
{
"id": "<imovelId>",
"max_hospedes": "<max_hospedes>",
"banheiros": "<banheiros>",
"pet": "<pet>",
"limpeza": "<limpeza>",
"ativacao": "<ativacao>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"anuncios": ["<anuncios.id: anuncios.plataforma>"],
},
{
"imovel 2 ..."
}
]
GET /imovel/<imovel_id>
- Retorna o imovel do id mencionado:
{
"id": "<imovelId>",
"max_hospedes": "<max_hospedes>",
"banheiros": "<banheiros>",
"pet": "<pet>",
"limpeza": "<limpeza>",
"ativacao": "<ativacao>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"anuncios": ["<anuncios.id: anuncios.plataforma>"],
}
POST /imovel
- Você deve preencher o body com os campos
max_hospedes
,banheiros
,pet
elimpeza
exemplo:
{
"max_hospedes": 3,
"banheiros": 2,
"pet": true,
"limpeza": 150.50
}
- Em caso de sucesso, retorna as informações do imovel criado:
{
"id": "<imovelId>",
"max_hospedes": "<max_hospedes>",
"banheiros": "<banheiros>",
"pet": "<pet>",
"limpeza": "<limpeza>",
"ativacao": "<ativacao>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"anuncios": ["<anuncios.id: anuncios.plataforma>"],
}
PUT /imovel/<imovel_id>
- Você deve preencher o body com os campos
max_hospedes
,banheiros
,pet
elimpeza
exemplo:
{
"max_hospedes": 4,
"banheiros": 2,
"pet": true,
"limpeza": 150.50
}
- Em caso de sucesso, retorna as informações do imovel atualizado:
{
"id": "<imovelId>",
"max_hospedes": "<max_hospedes>",
"banheiros": "<banheiros>",
"pet": "<pet>",
"limpeza": "<limpeza>",
"ativacao": "<ativacao>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"anuncios": ["<anuncios.id: anuncios.plataforma>"],
}
DEL /imovel/<imovel_id>
- Em caso de sucesso, retorna as informações de sucesso:
{
"res": "Object deleted!"
}
Anuncio API
GET /anuncio
- Retorna todos anuncios:
[
{
"id": "<anuncio_id>",
"imovel_id": "<imovel_id>",
"plataforma": "<plataforma>",
"taxa_plataforma": "<taxa_plataforma>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"reservas": ["<reservas.id: reservas.preco_total>"],
},
{
"anuncio 2 ..."
}
]
GET /anuncio/<anuncio_id>
- Retorna o anuncio do id mencionado:
{
"id": "<anuncio_id>",
"imovel_id": "<imovel_id>",
"plataforma": "<plataforma>",
"taxa_plataforma": "<taxa_plataforma>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"reservas": ["<reservas.id: reservas.preco_total>"],
}
POST /anuncio
- Você deve preencher o body com os campos
imovel_id
,plataforma
etaxa_plataforma
exemplo:
{
"imovel_id": "valid imovel id",
"plataforma": "AirBnB",
"taxa_plataforma": 150.50
}
- Em caso de sucesso, retorna as informações do anuncio criado:
{
"id": "<anuncio_id>",
"imovel_id": "<imovel_id>",
"plataforma": "<plataforma>",
"taxa_plataforma": "<taxa_plataforma>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"reservas": ["<reservas.id: reservas.preco_total>"],
}
PUT /anuncio/<anuncio_id>
- Você deve preencher o body com os campos
imovel_id
,plataforma
etaxa_plataforma
exemplo:
{
"imovel_id": "valid imovel id",
"plataforma": "AirBnB",
"taxa_plataforma": 150.50
}
- Em caso de sucesso, retorna as informações do anuncio atualizado:
{
"id": "<anuncio_id>",
"imovel_id": "<imovel_id>",
"plataforma": "<plataforma>",
"taxa_plataforma": "<taxa_plataforma>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
"reservas": ["<reservas.id: reservas.preco_total>"],
}
Reserva API
GET /reserva
- Retorna todas reservas:
[
{
"id": "<reserva_id>",
"anuncio_id": "<anuncio_id>",
"check_in": "<check_in>",
"check_out": "<check_out>",
"preco_total": "<preco_total>",
"comentario": "<comentario>",
"hospedes": "<hospedes>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
},
{
"reserva 2 ..."
}
]
GET /reserva/<reserva_id>
- Retorna reserva do id mencionado:
{
"id": "<reserva_id>",
"anuncio_id": "<anuncio_id>",
"check_in": "<check_in>",
"check_out": "<check_out>",
"preco_total": "<preco_total>",
"comentario": "<comentario>",
"hospedes": "<hospedes>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
}
POST /reserva
- Você deve preencher o body com os campos
anuncio_id
,check_in
,check_out
,preco_total
,comentario
hospedes
exemplo:
{
"anuncio_id": "10145e55-6bc1-4e1c-b6f4-22dee9369f67",
"check_in": "2020-05-21",
"check_out": "2020-04-23",
"preco_total": 500.50,
"comentario": "gostei muito",
"hospedes": 3
}
- Em caso de sucesso, retorna as informações da reserva criada:
{
"id": "<reserva_id>",
"anuncio_id": "<anuncio_id>",
"check_in": "<check_in>",
"check_out": "<check_out>",
"preco_total": "<preco_total>",
"comentario": "<comentario>",
"hospedes": "<hospedes>",
"criacao": "<criacao>",
"atualizacao": "<atualizacao>",
}
DEL /reserva/<reserva_id>
- Em caso de sucesso, retorna as informações de sucesso:
{
"res": "Object deleted!"
}