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

Add compatibility checker to /serverinfo #587

Open
trife opened this issue Jan 18, 2024 · 1 comment
Open

Add compatibility checker to /serverinfo #587

trife opened this issue Jan 18, 2024 · 1 comment
Labels
BrAPI-Core Related to BrAPI-Core Modify Data Model Change an existing data model

Comments

@trife
Copy link

trife commented Jan 18, 2024

While it's possible to manually do this inside a given implementation, this would more easily allow tools to determine if implementations contain the minimum implemented calls necessary for compatibility without having to parse the /serverinfo results. We discussed this a bit at PAG, so I'm hoping that @BrapiCoordinatorSelby can add to the details.

@BrapiCoordinatorSelby
Copy link
Member

The Problem:
Two systems are reported to be BrAPI compatible, but support different sets of endpoints and are therefore not compatible with each other. For example, Field Book is BrAPI compatible requiring Studies, OUs, Variables, and Observations, and GIGWA is also BrAPI compatible supporting the Studies, AlleleMatrix, and Variants endpoints. Both BrAPI compatible, but not with each other. This causes confusion and frustration.

Solution:
The current solution is for every client application to access the /serverinfo endpoint of a server it is pointed at. This happens before any other calls are made. The data returned by /serverinfo should be enough information to determine compatibility, but it is clumsy to do, and the logic needs to be done on the client side.

The proposed solution is to make a modification to /serverinfo or make a new endpoint to push this logic to the server side. Something where the client can submit the endpoints it requires, and the server can respond with a simpler 👍 or 👎. I have some ideas of what that might look like, including method (GET, POST, etc), endpoint, BrAPI version, and criticality(required vs optional).

This seems like an easy, low hanging fruit to improve the standard. Always open to ideas and opinions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BrAPI-Core Related to BrAPI-Core Modify Data Model Change an existing data model
Projects
None yet
Development

No branches or pull requests

2 participants