geopython / pygeoapi

pygeoapi is a Python server implementation of the OGC API suite of standards. The project emerged as part of the next generation OGC API efforts in 2018 and provides the capability for organizations to deploy a RESTful OGC API endpoint using OpenAPI, GeoJSON, and HTML. pygeoapi is open source and released under an MIT license.
https://pygeoapi.io
MIT License
490 stars 260 forks source link

Add support for parameter Outputs of OGC API Processes #1599

Closed francescoingv closed 6 months ago

francescoingv commented 6 months ago

Overview

The parameter outputs is passed to the Manager, which in turn pass it to the Processor, subject to the Processor being declared to support the parameter.

The conditional parameter passing to the Processor grant backward compatibility for already developed Processors.

Related Issue / discussion

Solve https://github.com/geopython/pygeoapi/issues/1420, Subset https://github.com/geopython/pygeoapi/issues/1285

Additional information

This PR has a breaking signature in BaseManager.execute_process() If needed, an additional PR could be made to have backward compatibility: adding a supports_output property to the Manager and handling it as required (currently not in place as I think it may set a maintenance issue).

The backward compatibility of the Processor is given by a supports_outputs property of the BaseProcessor, by default set to True. To check the compatibility, the example processor HelloWorld has supports_outputs=True, while EchoProcessor follow the old signature.

I think an error 501 should be raised on receiving the parameter outputs, and not having the Processor handling it.

Dependency policy (RFC2)

Updates to public demo

Contributions and licensing

(as per https://github.com/geopython/pygeoapi/blob/master/CONTRIBUTING.md#contributions-and-licensing)

francescoingv commented 6 months ago

Sorry, I made some errors in the pull request process. Will close and reopen a new one.