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

datasetIds and/or other additional request parameters? #24

Open
mbaudis opened this issue Apr 7, 2022 · 5 comments
Open

datasetIds and/or other additional request parameters? #24

mbaudis opened this issue Apr 7, 2022 · 5 comments
Assignees

Comments

@mbaudis
Copy link
Member

mbaudis commented Apr 7, 2022

The only ones that we agreed on adding were the collection ones if we prefer:
biosamples?datasetIds=1,2,3
to

dataset/1/biosamples
dataset/2/biosamples
dataset/3/biosamples

Originally posted by @jrambla in ga4gh-beacon/beacon-v2-Models#112 (comment)

datasetIds needs to be defined as request parameter for most entry types.

@mbaudis mbaudis transferred this issue from ga4gh-beacon/beacon-v2-Models Jun 20, 2022
@mbaudis
Copy link
Member Author

mbaudis commented Jun 20, 2022

See also the work done on ga4gh-beacon/beacon-v2-Models#117

This requires a new cycle of work in the unified repository.

@mbaudis mbaudis changed the title datasetIds parameter not defined datasetIds and/or other additional request parameters? Jun 20, 2022
@gsfk
Copy link
Collaborator

gsfk commented Oct 8, 2024

Reviving this issue since I was looking around for a way to specify a set of datasets in a query. This still exists in an example and in the docs, so it seems reasonable to add them to the spec.

@mbaudis
Copy link
Member Author

mbaudis commented Oct 9, 2024

@gsfk I'm all for it. AFAIK @jrambla has objections since it breaks the "let's everything be doable by REST paths" but then, so many things would be much easier - or enabled at all - by having datasetIds and cohortIds as query parameters, for all (data) entry types; the response structure exists anyway (beaconResultsetsResponse).

For us, for now I've gone the way of basically moving to beacon-per-dataset (though we have the working datasetIds parameter for multi-dataset queries, but each beacon has a default one).

Btw.: I even think the example linked above was by @jrambla? Not my example style...

@gsfk
Copy link
Collaborator

gsfk commented Oct 9, 2024

I like being able to resolve datasets by path, but there are two difficulties:

  • this only lets me query one dataset at a time
  • while the spec includes definitions for e.g. /datasets/{id}/individuals and /datasets/{id}/g_variants some seemingly obvious endpoints are missing:

/datasets/{id}/analyses
/datasets/{id}/runs

Not sure if these were deliberately excluded? I also presumably won't have definitions for more nested paths, eg:

/datasets/{id}/individuals/{id}/biosamples

... so I lose some functionality that I would otherwise have at the root level of the beacon.

@mbaudis
Copy link
Member Author

mbaudis commented Oct 10, 2024

@gsfk

  1. There were some previous discussions and I was told that it is in principle possible to use an array as {id}; e.g. datasets/dataset1,dataset2/g_variants is a valid REST syntax and you're good using it in your implementations - though not all implementations would support it (bycon does support multiple id values in the path but not for datasets ATM)
  2. I've brought up the "all entities as endpoints" (e.g. /datasets/{id}/analyses) before and probably did an issue or PR ... and had discussed it with @jrambla - AFAIK this is one of the things were we just have to redo it for a new attempt.
  3. Yeah, I also proposed the /datasets/{id}/individuals/{id}/biosamples because this was a way I'd implemented it myself previously but I was dissuaded from it (and it really could to a bag of hurt adding this for future use - either adoption hell or implementation hell, or both, since we didn't do it from the start).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants