scieloorg / opac_ssm_api Goto Github PK
View Code? Open in Web Editor NEWGRPC API Client of OPAC SSM
License: BSD 3-Clause "New" or "Revised" License
GRPC API Client of OPAC SSM
License: BSD 3-Clause "New" or "Revised" License
Editar o arquivo requirements/base.txt
Trocar:
grpcio==1.6.0
grpcio-tools==1.6.0
grpcio-health-checking==1.6.0
Para
grpcio==1.7.3
grpcio-tools==1.7.3
grpcio-health-checking==1.7.3
Instalar as dependências:
pip install -r requirements/local.txt
Tentar rodar o servidor grpc:
python manage.py grpc_server
Erro:
Starting GRPC... Host: [::], Port: 5000
Traceback (most recent call last):
File "manage.py", line 23, in <module>
execute_from_command_line(sys.argv)
File "/Users/jamil/.virtualenvs/opac_ssm/lib/python3.5/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/Users/jamil/.virtualenvs/opac_ssm/lib/python3.5/site-packages/django/core/management/__init__.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/jamil/.virtualenvs/opac_ssm/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/jamil/.virtualenvs/opac_ssm/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute
output = self.handle(*args, **options)
File "/Users/jamil/projects/opac_ssm/grpc_ssm/management/commands/grpc_server.py", line 20, in handle
settings.GRPC_MAX_SEND_MESSAGE_LENGTH)
File "/Users/jamil/projects/opac_ssm/grpc_ssm/grpc_server.py", line 288, in serve
health_pb2.add_HealthServicer_to_server(servicer, server)
AttributeError: module 'grpc_health.v1.health_pb2' has no attribute 'add_HealthServicer_to_server'
Para realizar essa tarefa é importante considerarmos a seção "Retry gracefully" do post: https://blog.balthazar-rouberol.com/celery-best-practices
Adicionamos essa característica no usuário da API, porém é importante que tenhamos isso na API.
Dessa forma será possível perguntar para a API se o ativo já existe.
A obrigatoriedade do param checksum foi uma decisão ruim, devemos tornar esse método mais flexível para que possamos der mais opções de filtragem.
Atualmente estamos levantando exceções, porém para o cliente isso não é agradável.
Estive pesquisando uma forma melhor de retornar errors pelo grpc e encontrei os seguintes links:
Link para a documentação do GRPC-Python: http://www.grpc.io/grpc/python/grpc.html
IMPORTANTE: nesse cliente temos as exceções do uso do cliente e as exceções do lado do servidor, nesse ticket estou referenciando o lado no servidor.
Adicionar as seguintes funcionalidades:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.