Skip to content

CarlosESRosa/API-Alugueis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 e limpeza 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 e limpeza 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 e taxa_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 e taxa_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!"
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages