# NASA PDS Federated API
[![DOI](https://zenodo.org/badge/258831504.svg)](https://zenodo.org/doi/10.5281/zenodo.6314172)
PDS strives to develop REST-ful web APIs for all online web applications, including data search and DOI management.
This repository is the entry point for the NASA PDS Federated API specifications (e.g. following [OpenAPI](https://www.openapis.org/) standard) and their documentation.
Please visit our website at https://nasa-pds.github.io/pds-api/ for user documentation.
## Prerequisites
* Python 3
* For PDF generation, basiclatex and accompanying libraries are needed
```
brew install basictex
sudo /Library/TeX/texbin/tlmgr update --self
sudo /Library/TeX/texbin/tlmgr install latexmk
sudo /Library/TeX/texbin/tlmgr install tex-gyre
sudo /Library/TeX/texbin/tlmgr install fncychap
sudo /Library/TeX/texbin/tlmgr install wrapfig
sudo /Library/TeX/texbin/tlmgr install capt-of
sudo /Library/TeX/texbin/tlmgr install framed
sudo /Library/TeX/texbin/tlmgr install needspace
sudo /Library/TeX/texbin/tlmgr install tabulary
sudo /Library/TeX/texbin/tlmgr install varwidth
sudo /Library/TeX/texbin/tlmgr install titlesec
```
## Generate the user's documentation
Set the overall version (e.g. build number) in `docs/source/conf.py`
The OpenAPI yaml unresolved specifications are stored in the `specs` directory.
The naming of the specification are:
PDS_APIs-{application}-{version}-swagger.yaml
For example:
PDS_APIs-registry-1.0.0-swagger.yaml
To add a new specification or a new version of a specification:
1. Copy the OpenAPI Specification under the `specs` directory following the above filename convention.
2. Add a new entry for this file in `docs/source/specifications.rst`
3. In the file `docs/source/conf.py` add a section for the new specification in the `redoc` object.
4. Generate a PDF of the documentation.
```
cd docs/
make latexpdf
cp build/latex/pdsapis.pdf build/html/_static
```
6. Generate the Sphinx documentation:
```
pip install -e '.[dev]'
sphinx-build -b html docs/source docs/build/html
```
## Code of Conduct
All users and developers of the NASA-PDS software are expected to abide by our [Code of Conduct](https://github.com/NASA-PDS/.github/blob/main/CODE_OF_CONDUCT.md). Please read this to ensure you understand the expectations of our community.
## Development
To develop this project, use your favorite text editor, or an integrated development environment with Python support, such as [PyCharm](https://www.jetbrains.com/pycharm/).
### Contributing
For information on how to contribute to NASA-PDS codebases please take a look at our [Contributing guidelines](https://github.com/NASA-PDS/.github/blob/main/CONTRIBUTING.md).
## CI/CD
The template repository comes with our two "standard" CI/CD workflows, `stable-cicd` and `unstable-cicd`. The unstable build runs on any push to `main` (± ignoring changes to specific files) and the stable build runs on push of a release branch of the form `release/<release version>`. Both of these make use of our GitHub actions build step, [Roundup](https://github.com/NASA-PDS/roundup-action). The `unstable-cicd` will generate (and constantly update) a SNAPSHOT release. If you haven't done a formal software release you will end up with a `v0.0.0-SNAPSHOT` release (see NASA-PDS/roundup-action#56 for specifics).
Raw data
{
"_id": null,
"home_page": "https://github.com/NASA-PDS/pds-api",
"name": "pds-api",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "pds,planetary data,api",
"author": "PDS",
"author_email": "pds_operator@jpl.nasa.gov",
"download_url": "https://github.com/NASA-PDS/pds-api/releases/",
"platform": null,
"description": "# NASA PDS Federated API\n\n[![DOI](https://zenodo.org/badge/258831504.svg)](https://zenodo.org/doi/10.5281/zenodo.6314172)\n\nPDS strives to develop REST-ful web APIs for all online web applications, including data search and DOI management.\n\nThis repository is the entry point for the NASA PDS Federated API specifications (e.g. following [OpenAPI](https://www.openapis.org/) standard) and their documentation.\n\nPlease visit our website at https://nasa-pds.github.io/pds-api/ for user documentation.\n\n\n\n\n\n## Prerequisites\n\n* Python 3\n* For PDF generation, basiclatex and accompanying libraries are needed\n\n ```\n brew install basictex\n sudo /Library/TeX/texbin/tlmgr update --self\n sudo /Library/TeX/texbin/tlmgr install latexmk\n sudo /Library/TeX/texbin/tlmgr install tex-gyre\n sudo /Library/TeX/texbin/tlmgr install fncychap\n sudo /Library/TeX/texbin/tlmgr install wrapfig\n sudo /Library/TeX/texbin/tlmgr install capt-of\n sudo /Library/TeX/texbin/tlmgr install framed\n sudo /Library/TeX/texbin/tlmgr install needspace\n sudo /Library/TeX/texbin/tlmgr install tabulary\n sudo /Library/TeX/texbin/tlmgr install varwidth\n sudo /Library/TeX/texbin/tlmgr install titlesec\n ```\n\n\n## Generate the user's documentation\n\nSet the overall version (e.g. build number) in `docs/source/conf.py`\n\nThe OpenAPI yaml unresolved specifications are stored in the `specs` directory.\n\nThe naming of the specification are:\n PDS_APIs-{application}-{version}-swagger.yaml\n\nFor example:\n PDS_APIs-registry-1.0.0-swagger.yaml\n \nTo add a new specification or a new version of a specification:\n\n1. Copy the OpenAPI Specification under the `specs` directory following the above filename convention.\n2. Add a new entry for this file in `docs/source/specifications.rst`\n3. In the file `docs/source/conf.py` add a section for the new specification in the `redoc` object.\n4. Generate a PDF of the documentation.\n \n ```\n cd docs/\n make latexpdf\n cp build/latex/pdsapis.pdf build/html/_static\n ```\n\n6. Generate the Sphinx documentation:\n \n ```\n pip install -e '.[dev]'\n \n sphinx-build -b html docs/source docs/build/html\n ```\n\n## Code of Conduct\n\nAll users and developers of the NASA-PDS software are expected to abide by our [Code of Conduct](https://github.com/NASA-PDS/.github/blob/main/CODE_OF_CONDUCT.md). Please read this to ensure you understand the expectations of our community.\n\n\n## Development\n\nTo develop this project, use your favorite text editor, or an integrated development environment with Python support, such as [PyCharm](https://www.jetbrains.com/pycharm/).\n\n\n### Contributing\n\nFor information on how to contribute to NASA-PDS codebases please take a look at our [Contributing guidelines](https://github.com/NASA-PDS/.github/blob/main/CONTRIBUTING.md).\n\n\n## CI/CD\n\nThe template repository comes with our two \"standard\" CI/CD workflows, `stable-cicd` and `unstable-cicd`. The unstable build runs on any push to `main` (\u00b1 ignoring changes to specific files) and the stable build runs on push of a release branch of the form `release/<release version>`. Both of these make use of our GitHub actions build step, [Roundup](https://github.com/NASA-PDS/roundup-action). The `unstable-cicd` will generate (and constantly update) a SNAPSHOT release. If you haven't done a formal software release you will end up with a `v0.0.0-SNAPSHOT` release (see NASA-PDS/roundup-action#56 for specifics).\n",
"bugtrack_url": null,
"license": "apache-2.0",
"summary": "A short description, about 100-120 characters, suitable for search summaries",
"version": "14.0.0",
"project_urls": {
"Download": "https://github.com/NASA-PDS/pds-api/releases/",
"Homepage": "https://github.com/NASA-PDS/pds-api"
},
"split_keywords": [
"pds",
"planetary data",
"api"
],
"urls": [
{
"comment_text": "\ud83e\udd20 Yee-haw! This here ar-tee-fact got done uploaded by the Roundup!",
"digests": {
"blake2b_256": "fde7f2090366582d20d3d0bcb4b4a95f8855b307be17b7d62304d197bc6f5031",
"md5": "5f710f57635ca5db72a2234ac73b93ae",
"sha256": "97732eb1980fc00e1d1b0fab804bfcdd957478aa74d6331c9581afedadead212"
},
"downloads": -1,
"filename": "pds_api-14.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f710f57635ca5db72a2234ac73b93ae",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 9581,
"upload_time": "2024-02-26T22:08:08",
"upload_time_iso_8601": "2024-02-26T22:08:08.826625Z",
"url": "https://files.pythonhosted.org/packages/fd/e7/f2090366582d20d3d0bcb4b4a95f8855b307be17b7d62304d197bc6f5031/pds_api-14.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-26 22:08:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NASA-PDS",
"github_project": "pds-api",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "pds-api"
}