SALIC API¶
API aberta para o sistema SALIC. Tem por objetivo expor os dados de projetos da lei Rouanet. A API está implantada em http://api.salic.cultura.gov.br/doc/ e possui uma documentação para o usuário no formato OpenAPI/Swagger.
O projeto ainda se encontra em fase de homologação, sujeito ainda a muitas alterações, reformulações e atualizacões.
Requisitos¶
A aplicação foi testada em ambientes LINUX com distribuições Debian, Archlinux e Ubuntu. A implantação é feita utilizando Docker/Docker Compose ou Docker/Rancher. O ambiente de desenvolvimento utiliza uma conexão com um banco de dados local em Sqlite, onde podemos testar a aplicação com dados sintéticos.
A instância principal do Salic-API se conecta no banco de dados MS SQL Server no Ministério da Cultura.
Instalação¶
Recomendamos que o desenvolvimento seja feito no virtualenv.
Virtualenv¶
Git clone + virtualenv + pip:
Instale o virtualenvwrapper:
$ sudo apt-get install virtualenvwrapper
$ virtualenvwrapper.sh
$ source `which virtualenvwrapper.sh`
$ mkvirtualenv -p /usr/bin/python3 salic-api
$ workon salic-api
Clone o repositorio:
$ git clone https://github.com/lappis-unb/salic-api
Instale as dependencias:
$ python setup.py develop
$ pip install -e ".[dev]"
Inicialize o banco de desenvolvimento antes de rodar a aplicação:
$ inv db -f
$ inv run
Não esqueça de rodar os testes com frequência:
$ inv test
Docker¶
Para gerar a build do sistema execute o seguinte comando:
$ docker build -t salic-api .
Para executar o ambiente execute os seguintes comandos:
$ docker run -it --name salic-api -p 5000:5000 -v $PWD:/app salic-api
Para executar os testes com o docker execute o seguinte comando:
$ docker run -it --name salic-api -p 5000:5000 -v $PWD:/app salic-api inv test
Docker Compose¶
O sistema possui dois docker-compose, um para o ambiente de desenvolvimento e outro para o ambiente de produção, para escolher qual docker compose usar passe o arquivo docker-compose.dev.yml ou docker-compose.prod.yml na flag “-f” no comando docker-compose, como no exemplo a seguir:
$ docker-compose -f docker-compose.dev.yml
ou
$ docker-compose -f docker-compose.prod.yml
Para gerar a build do sistema execute o seguinte comando:
$ docker-compose -f [docker-compose file] build
Para executar o ambiente execute os seguintes comandos:
$ docker-compose -f [docker-compose file] up
Para executar os testes com o docker execute o comando abaixo, esse comando funciona apenas com o docker-compose do ambiente de desenvolvimento, ou seja antes de rodar esse comando certifique-se de ter gerado a build do ambiente de desenvolvimento:
$ docker-compose -f docker-compose.dev.yml run --rm gunicorn inv test
Dependências básicas¶
python-dev
python-pip
freetds-bin
freetds-dev
libxml2-dev
libxslt1-dev
libz-dev
unixodbc-dev
Configuração¶
Edite o arquivo salic-api/app/example_config.py de acordo com seu ambiente. Edite o arquivo salic-api/app/general_config.py apontando o arquivo de configuração a ser usado.
Documentação¶
A documentação da API é feita de 2 formas:
-
SWAGGER está sendo usado para documentar os endpoints do projeto. Seus arquivos estáticos estão na pasta:
salic-api/salic_api/static
A documentação em produção pode ser acessada através desse link:
-
Sphinx está sendo usado para a documentação do projeto como um todo, aproveitando as docstrings no código e também acrescentando informações nos arquivos de documentação que estão na pasta docs/ no formato rst.
A documentação em produção pode ser acessada através desse link:
Para construir a documentação do SPHINX é necessário criar uma pasta que irá conter os arquivos de documentação.
Crie a pasta build na raiz do projeto.
mkdir build
Construa a documentação na pasta criada:
sphinx-autobuild docs build/docs
Para acessar a documentação acesse:
localhost:8000
Licença¶
Licensed under the GPL License.