Exercício 8 - Funções via OGC API - Processes
OGC API - Processes suporta o encapsulamento de tarefas computacionais em processos executáveis que podem ser oferecidos por um servidor através de uma Web API e ser invocados por uma aplicação cliente.
A OGC API - Processes utiliza a OGC API - Common como bloco de construção, permitindo assim implementação e integração simplificadas para clientes e utilizadores.
Suporte na pygeoapi
A pygeoapi suporta a especificação OGC API - Processes, com a capacidade de publicar código Python (independentemente de quão simples ou complexo) como uma definição de Processo OGC API. A pygeoapi também suporta processamento síncrono ou assíncrono, com a capacidade de armazenar e recuperar o estado/resultados de 'tarefas'.
Note
Consulte a documentação oficial para mais informações sobre publicação de processos na pygeoapi
Publicar código Python como um processo na pygeoapi
Com a pygeoapi vamos configurar OGC API - Processes usando código Python que implementa o BaseProcessor
da pygeoapi, que é uma classe
abstrata base fundamental da pygeoapi. Neste exercício vamos implementar uma função "squared" como um processo usando o código Python de exemplo em
workshop/exercises/plugins/process/squared.py
. O processo já está definido para fazer parte do ambiente e configuração da pygeoapi.
Atualizar a configuração da pygeoapi
Abra o ficheiro de configuração da pygeoapi num editor de texto. Adicione uma nova secção de processo da seguinte forma:
1 2 3 4 |
|
Atualizar o código Python
Abra o código Python em workshop/exercises/plugins/process/squared.py
. Encontre a função execute
e atualize o código Python
para calcular o valor de entrada ao quadrado.
Guarde a configuração e reinicie o Docker Compose. Navegue para http://localhost:5000/processes para avaliar se o novo processo foi publicado. Inspecione os metadados detalhados do processo navegando para http://localhost:5000/processes/squared para inspecionar como os metadados do processo definidos no código/ficheiro Python são disponibilizados em JSON.
Acesso cliente
Swagger
A forma mais fácil de testar o novo processo é usando a interface Swagger incorporada da pygeoapi. Navegue para http://localhost:5000/openapi e experimente o processo na interface Swagger.
Resumo
Parabéns! Agora é capaz de publicar código Python como um processo na pygeoapi.