Add support for parameter Outputs of OGC API Processes #1599
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 #1420,
Subset #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
hassupports_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)