Sign inSign up

igorvirgilio/ubi_restapi

By igorvirgilio

•Updated over 6 years ago

Image
0

141

igorvirgilio/ubi_restapi repository overview

⁠Imagem Python com Django REST Framework

Esta imgem contém o ambiente Django, Python e Django REST Framework preparado para execução da API

Segue abaixo os passos para deixar o ambiente pronto

⁠Primeiros passos

⁠Deploy Base de Dados Postgres com Postgis extention

Incialmente precisa-se de criar o conteiner da Base de Dados PostgresSQL com extensão PostGIS.

Toda a configuração e disponibilização da imagem pode ser encontrada neste link: here⁠

⁠Deploy da REST API

Após configurar e fazer o depoly da Base de Dados e ter configurado um novo DATABASE conforme as instruções disponibilizadas baixado a pode-se prosseguir para os passos de incialização do conteiner que da REST API com os comanos para serem executados dentro da console do conteiner ubi_restapi

Nota: Esta imagem foi constituída com os arquivos do projeto disponibilizados via repositório no Github, que pode ser acedido neste link⁠.

⁠Inicialização do conteiner ubi_restapi

Para a incicialização do conteiner é sugerido o seguinte comando:

docker exec -it ubi_restapi /bin/bash
⁠Comandos de preparação do ambiente

Caso ainda não tenha sido criado um superuser ou ainda não possua o registro na Base de dados, basta executar o comando a seguir para criar um utilizador admin, e preencher o email(caso queira) e por fim a senha:

python manage.py createsuperuser

Após a criação do superuser, basta executar os comandos de migração, que validará os ficheiros e associar com a base de dados.

python manage.py makemigrations

python manage.py migrate

E por fim iniciar o servidor, apontando o IP e porta desejados (recomenda-se utilizar 0.0.0.0:8000)

python manage.py runserver 0.0.0.0:8000

Então basta aceder este endereço em um navegador com o endpoint /, ficando da seguinte forma http://0.0.0.0:8000/⁠

⁠Utilização da REST API

Após a configuração do ambiente que inclui a base de dados e a Django Framework, pode-se testar a REST API em si. Basta que seja acedido à URL mencionada.

⁠Endpoints

⁠Endpoint raiz " / "

Este é o endpoint principal que faz a listagem geral das ocorrências disponíveis na base da dados implementada.

Além desta, é possível realizar uma filtragem pelos seguintes parâmetros:

  • Autor
  • Categoria da Ocorrência
  • Localização

Neste endpoint é suportado o método:

  • GET
⁠Endpoint " /create/ "

No endpoint /create/ é possível criar uma nova nova ocorrência. Conforme foi explanado na documentação do código da REST API, disponível no link⁠, a criação de uma nova ocorrência terá a restrição de aceitar somente os parâmetros:

  • Categoria da ocorrência
  • Descrição da ocorrência
  • Endereço da ocorrência

Os demais parâmetros são preenchidos automaticamente, e são eles:

  • Autor (será o utilizador autenticado)
  • Data de criação
  • Status da ocorrência (default: Por Validar)
  • Localização geográfica da ocorrência (funcionalidade ainda não implementada)

Após submeter (POST) uma nova ocorrência o resumo é exibido em tela (GET).

Neste endpoint são suportados os métodos:

  • GET
  • POST
⁠Endpoint " /detail/{id} "

O endpoint /detail/{id} possui a funcionalidade de exibir um endpoint específico com determinado id={id}, e além disso nesse endpoint será possível fazer edição e excluir esta ocorrência.

Há a restrição que apenas utilizadores com perfil de administrador poderão executar os métodos PUT e DELETE, para demais utilizadores será retornado código de resposta HTTP_FORBIDDEN_403.

Neste endpoint são suportados os métodos:

  • GET
  • PUT
  • DELETE
⁠Endpoint " /order/ "

Por fim o endpoint /order/ permite que as ocorrências disponíveis sejam ordenadas pelos parâmetros;

  • Autor
  • Categoria da Ocorrência
  • Localização*

Nota: A ordenação a partir da localização deverá ser feita a partir da distância geográfica, porém tal funcionalidade ainda não foi implementada. Neste endpoint são suportados os métodos:

  • GET

Tag summary

Content type

Image

Digest

Size

464.8 MB

Last updated

over 6 years ago

docker pull igorvirgilio/ubi_restapi:v4