nasa-pds / pds-api Goto Github PK
View Code? Open in Web Editor NEWPDS web APIs specifications and user's manual
Home Page: http://nasa-pds.github.io/pds-api
License: Other
PDS web APIs specifications and user's manual
Home Page: http://nasa-pds.github.io/pds-api
License: Other
This requires:
As a user, I want to be able to select the fields I want in my search response of collections.
The management of null fields should be handled:
Acceptance criteria:
Check that specification is clear about the syntax to select fields in the JSON response, see:
The api end-point should answer in json or XML.
For XML response, the original PDS4 label should be provided
Acceptance criteria:
Check that the API end-point support standard content negociation as describe here https://restfulapi.net/content-negotiation/ (especially header parameter Accept=application/json
or application/xml
or application/pds4+xml
)
Define a PDS API extension model / convention for discipline-specific search engines
How should PDS handle enriched / supplemental metadata?
...so that I can ingest supplemental metadata into the registry that is both archival (Product_Metadata_Supplemental) and non-archival (e.g. external databases) to make the information searchable and accessible.
Note: This ticket is the parent epic for the overarching design consideration, there are several sub-tickets for the individual data source implementations.
Some use cases we need to think about:
See sub-tickets for individual data source acceptance criteria
Should we just use Product_Metadata_Supplemental as the model for this and then augment for the non-archival data sources? - it seems like we should require some sort of archive-worthy definition of the data to be ingested. this could almost be a one-to-one translation of Product_Metadata_Supplemental, but just make it non-archival.
For the external databases, and initial workaround, we may also be just using a CSV for the time being: NASA-PDS/registry#51, and implement a MySQL plugin down the road since it would require some additional data modeling and configuration to connect to the database.
...so that I can easily integrate the PDS API with other APIs.
So that PDS datasets are viewed by google as datasets, see for example
We want to be able to add a piece of javascript code in our HTML dataset landing page (bundle, collection, observational_products), which will call the registry-api with the lidvid of the current product as an argument and complete the schema.org json-ld description of the dataset (e.g. https://schema.org/Dataset) as described on this page https://developers.google.com/search/docs/appearance/structured-data/dataset#example from the registry-api response content.
The request will use a specific Accept header value application/ld+json
in the content negociation.
Given
When I perform
Then I expect
See introduction https://schema.org/docs/data-and-datasets.html
Bundle/Collection labels: https://schema.org/DataCatalog
Observational product labels: https://schema.org/Dataset
Data: https://schema.org/DataDownload
As a API developer, I want to be able to test that my API complies with the specification from a ready made test collection in POSTMAN.
Acceptance criteria:
Check that specification is clear about the syntax of properties in JSON response, see:
The server stub will be automatically generated from swagger file so to be updated when swagger file is.
The implementation is java.
Define initial prototype set of discipline/node-specific search parameters for API Spec
choose between null, nan or not having the attribute or other options
Acceptance criteria:
Check that specification is clear about the management of empty fields or attributes, see:
Document SwaggerHub CodeGen Server adaptation and integration how-tos
For general documentation:
https://nasa-pds.github.io/pds-api/
Possibly for implementation documentation, for example:
https://pds-gamma.jpl.nasa.gov/api/swagger-ui.html
We want to keep the original style because user's are used to it since it comes from generic popular documentation generation but we want to show that it is a PDS documentation (at least logo) and provide links to the main web resource of PDS (app bar ?).
Core services of the API provided in the template. Basic infrastructure services will be built in
Acceptance criteria:
Acceptance criteria:
Check that the default fields are described in the specification:
Design how query passing will happen across the PDS both EN-to-DN and DN-to-DN
Get the investigation area from the xml label, rewrite how target and instrument are read, get them also from the XML label
Acceptance criteria:
Check that target,instruments and investigation area are available in reference implementation https://github.com/NASA-PDS/registry-api-service and deployed on pds-gamma (https://pds-gamma.jpl.nasa.gov/api/swagger-ui.html)
We need to come up with some intra-discipline (e.g. Imaging data) search parameters to include in the API.
Some questions:
Acceptance criteria:
Check that required fields are defined in the specification:
or check it is available
Identify it and test it.
...so that we can utilize the PDS Client and test the API at "any time" against some deployed version with some data in it.
aka. CI/CD of the latest API server
Given I've made a change to the source code of the PDS API Service (ignoring docs)
When I perform a commit in Github
Then I expect to trigger a build and deployment to pds-gamma (and/or AWS if that is also reasonable)
Currently the non existing field is returned in objects with value=null.
We should return error 400 (bad request) or 404 (non existing).
OGC EDR chose error 400, see https://github.com/opengeospatial/ogcapi-environmental-data-retrieval/blob/master/19-086.pdf
The demo API should support the query syntax described on https://github.com/NASA-PDS/pds-api/blob/master/docs/spec/pds-api-specification.md#query-syntax in parameter 'q'.
The wildcard (*, ?) do not need to be supported in this version.
Acceptance criteria:
Test simple comparisons and combination of comparisons as documented in https://nasa-pds.github.io/pds-api/#tag/collections
You can use demo API deployment available on https://pds-gamma.jpl.nasa.gov/api/swagger-ui.html or deploy your own as descrbed in pds-registry-app package documentation version 0.3.0.
The api end-point should answer in json or XML.
For XML response, the original PDS4 label should be provided
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.