Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Capabilities API #156

Closed
cookeac opened this issue Sep 25, 2020 · 5 comments
Closed

Capabilities API #156

cookeac opened this issue Sep 25, 2020 · 5 comments

Comments

@cookeac
Copy link
Collaborator

cookeac commented Sep 25, 2020

Referenced in #154 and earlier discussions, it would be useful to have a mechanism to determine:

  • The collections and events supported by a server
  • The methods supported (are these collections GET only or can you POST, or even PUT/PATCH?)
  • Whether more complex transactions, which may involve atomic updates to several collections are supported
    And perhaps other things too.

Please submit your suggestions as comments to this issue.

@cookeac cookeac added enhancement New feature or request this-release Scheduled to be implemented for this release in development and removed enhancement New feature or request labels Sep 25, 2020
@alamers
Copy link
Collaborator

alamers commented Oct 9, 2020

Would providing a specific openapi spec file not do the job? Maybe we could provide a well-known URI for that file and go from there?

@ahokkonen
Copy link
Contributor

ahokkonen commented Oct 13, 2020

As a default for supported methods we could use OPTIONS http method for each endpoints as by specs.

@gra-moore
Copy link
Collaborator

gra-moore commented Nov 5, 2020

Here are a couple of vocabulary based approaches:

https://www.odata.org/blog/introducing-a-capabilities-vocabulary/
https://www.w3.org/1999/11/02-RDFServices/

These approaches look to define a data model for capabilities. They dont have wide adoption that I have seen but could be seen as input to a data model for describing capabilities.

Other options leading on from comments above: Service endpoints could just publish a Open API document that described only the services capabilities they actually had. The nice thing about this approach would be that the complete swagger document could be published as a standard and then implementors just cut away what they are not supporting.

@cookeac
Copy link
Collaborator Author

cookeac commented Nov 5, 2020

I think there are different use cases that could be considered for finding out about API capabilities:

  • As a developer, what can I do with this particular service? An OpenAPI document sounds ideal.
  • My product can talk to many services - how do I know at runtime if a particular API is supported? HTTP OPTIONS would be a method
  • My product can talk to many services - at runtime, which filter and sort methods can I expose to users? A vocabulary approach would be helpful.

@cookeac cookeac removed the this-release Scheduled to be implemented for this release in development label Mar 25, 2021
@cookeac
Copy link
Collaborator Author

cookeac commented Sep 23, 2021

No use case for this at present.

@cookeac cookeac closed this as completed Sep 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants