https://github.com/internetarchive/openlibrary-api
API documentation for https://github.com/internetarchive/openlibrary
https://github.com/internetarchive/openlibrary-api
Last synced: 3 months ago
JSON representation
API documentation for https://github.com/internetarchive/openlibrary
- Host: GitHub
- URL: https://github.com/internetarchive/openlibrary-api
- Owner: internetarchive
- Created: 2022-10-30T08:04:20.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-10-02T10:18:37.000Z (3 months ago)
- Last Synced: 2025-10-02T12:27:37.174Z (3 months ago)
- Language: HTML
- Size: 43 MB
- Stars: 7
- Watchers: 14
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Open Library API: https://internetarchive.github.io/openlibrary-api
* https://github.com/internetarchive/openlibrary/labels/Theme%3A%20Public%20APIs
* https://openlibrary.org/developers/api
---
# How to host Swagger API documentation with GitHub Pages
[
](https://peterevans.dev/posts/how-to-host-swagger-docs-with-github-pages/)
This repository is a template for using the [Swagger UI](https://github.com/swagger-api/swagger-ui) to dynamically generate beautiful documentation for your API and host it for free with GitHub Pages.
The template will periodically auto-update the Swagger UI dependency and create a pull request. See the [GitHub Actions workflow here](.github/workflows/update-swagger.yml).
The example API specification used by this repository can be seen hosted at [https://peter-evans.github.io/swagger-github-pages](https://peter-evans.github.io/swagger-github-pages/).
## Steps to use this template
1. Click the `Use this template` button above to create a new repository from this template.
2. Go to the settings for your repository at `https://github.com/{github-username}/{repository-name}/settings` and enable GitHub Pages.

3. Browse to the Swagger documentation at `https://{github-username}.github.io/{repository-name}/`.
## Steps to manually configure in your own repository
1. Download the latest stable release of the Swagger UI [here](https://github.com/swagger-api/swagger-ui/releases).
2. Extract the contents and copy the "dist" directory to the root of your repository.
3. Move the file "index.html" from the directory "dist" to the root of your repository.
```
mv dist/index.html .
```
4. Copy the YAML specification file for your API to the root of your repository.
5. Edit [dist/swagger-initializer.js](dist/swagger-initializer.js) and change the `url` property to reference your local YAML file.
```javascript
window.ui = SwaggerUIBundle({
url: "swagger.yaml",
...
```
Then fix any references to files in the "dist" directory.
```html
...
...
...
```
6. Go to the settings for your repository at `https://github.com/{github-username}/{repository-name}/settings` and enable GitHub Pages.

7. Browse to the Swagger documentation at `https://{github-username}.github.io/{repository-name}/`.
The example API specification used by this repository can be seen hosted at [https://peter-evans.github.io/swagger-github-pages](https://peter-evans.github.io/swagger-github-pages/).
---
### Convert `swagger.json` into `swagger.yml`:
```python
>>> import json, yaml
>>> with open("swagger.json") as in_file, open("swagger.yaml", "w") as out_file:
... yaml.dump(json.load(in_file), out_file)
...
```