{"id":15091268,"url":"https://github.com/capcom6/api-registry","last_synced_at":"2026-01-05T07:07:59.997Z","repository":{"id":153286515,"uuid":"628604975","full_name":"capcom6/api-registry","owner":"capcom6","description":"Tool for managing and browsing OpenAPI YAML specifications and Swagger UI documentation for multiple projects.","archived":false,"fork":false,"pushed_at":"2024-01-11T10:44:07.000Z","size":1259,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-27T10:29:50.931Z","etag":null,"topics":["api","openapi-spec","registry","swagger","swagger-ui"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/capcom6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-16T13:28:05.000Z","updated_at":"2023-04-16T13:29:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"349decfd-0dca-4188-a668-ee837ae4b251","html_url":"https://github.com/capcom6/api-registry","commit_stats":{"total_commits":7,"total_committers":2,"mean_commits":3.5,"dds":0.2857142857142857,"last_synced_commit":"a7c35524e76866c753fee92ed3c7eb254168480b"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capcom6%2Fapi-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capcom6%2Fapi-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capcom6%2Fapi-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/capcom6%2Fapi-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/capcom6","download_url":"https://codeload.github.com/capcom6/api-registry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244945593,"owners_count":20536296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","openapi-spec","registry","swagger","swagger-ui"],"created_at":"2024-09-25T10:36:47.834Z","updated_at":"2026-01-05T07:07:59.991Z","avatar_url":"https://github.com/capcom6.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT SHIELDS --\u003e\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![Apache 2.0 License][license-shield]][license-url]\n\n\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003c!-- \u003ca href=\"https://github.com/capcom6/api-registry\"\u003e\n    \u003cimg src=\"assets/logo.svg\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e --\u003e\n\n  \u003ch3 align=\"center\"\u003eAPI Registry\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    API registry service is a Python-based open source tool for managing and browsing OpenAPI YAML specifications and Swagger UI documentation.\n    \u003cbr /\u003e\n    \u003c!-- \u003ca href=\"https://github.com/capcom6/api-registry\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/capcom6/api-registry\"\u003eView Demo\u003c/a\u003e --\u003e\n    ·\n    \u003ca href=\"https://github.com/capcom6/api-registry/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/capcom6/api-registry/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n- [About The Project](#about-the-project)\n- [Built with](#built-with)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n- [Usage](#usage)\n  - [How it works](#how-it-works)\n  - [Configuration](#configuration)\n  - [Security](#security)\n  - [Release notes](#release-notes)\n- [Roadmap](#roadmap)\n- [Contributing](#contributing)\n- [License](#license)\n- [Contact](#contact)\n- [Acknowledgments](#acknowledgments)\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n\u003c!-- [![Product Name Screen Shot][product-screenshot]](https://github.com/capcom6/api-registry) --\u003e\n\nThis open source project is a simple API registry service created with Python. It was built to provide an easy and convenient way to manage and browse OpenAPI YAML specifications and Swagger UI documentation.\n\nThe project is currently in its MVP (minimum viable product) stage, and is designed to be a basic starting point for building a more robust API registry system. It allows users to upload zip-archive files containing OpenAPI YAML specifications, and provides a simple user interface for browsing and accessing available APIs.\n\nThe project was inspired by the need for a lightweight and easy-to-use API registry service that could be easily customized and extended. It was built with Python and uses the FastAPI web framework, and Swagger UI for documentation.\n\nWe welcome contributions from the community to help improve and expand the functionality of the project. Please feel free to submit issues, pull requests, or feature requests on the project's GitHub repository.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## Built with\n\n* [![FastAPI](https://img.shields.io/badge/fastapi-0.95.1-blue.svg)](https://fastapi.tiangolo.com/)\n* [![Jinja2](https://img.shields.io/badge/jinja2-3.1.2-blue.svg)](https://palletsprojects.com/p/jinja/)  \n* [![Uvicorn](https://img.shields.io/badge/uvicorn-0.21.1-blue.svg)](https://www.uvicorn.org/)\n* [![Swagger UI](https://img.shields.io/badge/swagger--ui-4.18.2-orange.svg)](https://swagger.io/tools/swagger-ui/)  \n\u003c!-- * [Vue.js](https://vuejs.org/) - A progressive, incrementally-adoptable JavaScript framework for building user interfaces.\n  ![Vue.js version](https://img.shields.io/badge/vue.js-2.6.14-green.svg) --\u003e\n\u003c!-- * [PyYAML](https://pyyaml.org/) - A YAML parser and emitter for Python.\n  ![PyYAML version](https://img.shields.io/badge/pyyaml-6.0-blue.svg) --\u003e\n\u003c!-- * [Click](https://click.palletsprojects.com/en/8.0.x/) - A Python package for creating command line interfaces.\n  ![Click version](https://img.shields.io/badge/click-8.1.3-blue.svg) --\u003e\n\u003c!-- * [python-dotenv](https://github.com/theskumar/python-dotenv) - A Python package that allows you to use variables defined in a .env file in your Python projects.\n  ![python-dotenv version](https://img.shields.io/badge/python--dotenv-1.0.0-blue.svg) --\u003e\n\u003c!-- * [python-multipart](https://github.com/andrew-d/python-multipart) - A Python module for handling HTTP multipart/form-data requests.\n  ![python-multipart version](https://img.shields.io/badge/python--multipart-0.0.6-blue.svg) --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- GETTING STARTED --\u003e\n## Getting Started\n\n### Prerequisites\n\nBefore running the app, you should have the following installed on your system:\n\n* Docker - You can download and install Docker from [here](https://www.docker.com/get-started).\n\n### Installation\n\nTo run the app in a Docker container follow these steps:\n\n1. Open a terminal or command prompt.\n\n2. Pull the latest version of the `capcom6/api-registry` Docker image:\n\n   ```\n   docker pull capcom6/api-registry:latest\n   ```\n\n3. Start the app in a Docker container, exposing port 8000:\n\n   ```\n   docker run -p 8000:8000 capcom6/api-registry:latest\n   ```\n\n4. Open a web browser and navigate to `http://localhost:8000` to access the app.\n\nThat's it! You should now be able to access the app in your web browser at `http://localhost:8000`. If you encounter any issues, please refer to the project's documentation or open an issue on the project's GitHub repository.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Usage\n\n### How it works\n\nWhen you start the server, it listens for incoming requests on port 8000 by default. When you upload a zip-archive containing OpenAPI YAML specifications, the service expects the zip-archive to contain a folder for each project, with the OpenAPI spec in YAML format located in the project folder. The service extracts the files and stores them in a local directory. The service then reads the contents of the OpenAPI YAML files and generates Swagger UI documentation for each API.\n\nThe user interface provides a list of available APIs, and allows you to view the Swagger UI documentation for each API by clicking on the API name.\n\n### Configuration\n\nThis app is designed to work out of the box without any additional configuration.\n\n### Security\n\nThe API registry service does not include any built-in authorization or authentication mechanism. To enhance security, it is recommended to use an external service or tool, such as Nginx, to provide basic authentication and restrict access to the application. Alternatively, deploying the application in a private network can provide an additional layer of security and help prevent unauthorized access from external sources.\n\nTo help users get started with basic authentication using Nginx, a sample Docker Compose file is [provided](deployments/docker-compose.yml). This file includes a configuration for an Nginx reverse proxy that provides basic authentication for the API registry service. To use this configuration, you will need to modify the [`htpasswd`](deployments/nginx/.htpasswd) file to include your own username and password.\n\nNote that this configuration is only intended as a starting point, and may need to be customized or extended to meet the specific security needs of your application. It is recommended to consult with a security expert or follow industry best practices when implementing security measures for your application.\n\n### Release notes\n\n* Uploading a new zip-archive will overwrite any previously uploaded API specifications\n\n\u003c!-- _For more examples, please refer to the [Documentation](https://example.com)_ --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ROADMAP --\u003e\n## Roadmap\n\n* Parsing metadata from OpenAPI specs and displaying it in the user interface.\n* Adding support for simple search functionality based on metadata fields.\n* Enhancing support for uploading and managing multiple versions of an API.\n* Integrating with other API management tools and services to provide a more comprehensive solution for API management.\n* Improving the user interface and user experience, including customization options and branding support.\n\nWe welcome feedback and suggestions from the community to help shape the future roadmap of the API registry service. Please feel free to share your thoughts or ideas by opening issues or submitting pull requests on the project's GitHub repository.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the Apache-2.0 license. See `LICENSE.txt` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nProject Link: [https://github.com/capcom6/api-registry](https://github.com/capcom6/api-registry)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- ACKNOWLEDGMENTS --\u003e\n## Acknowledgments\n\nWe would like to thank the following individuals and organizations for their contribution to the development of the API registry service:\n\n* The creators and maintainers of FastAPI, which form the backbone of the API registry service.\n* The contributors to the OpenAPI Specification, which provides a common standard for describing RESTful APIs.\n* The developers of the Swagger UI library, which provides a user-friendly interface for browsing and testing API endpoints.\n\nFinally, we would like to thank our users and contributors for their valuable feedback and support. We are committed to continuing to improve and extend the API registry service, and look forward to working with the community to make it a more comprehensive and powerful tool for API management.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e \n\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/capcom6/api-registry.svg?style=for-the-badge\n[contributors-url]: https://github.com/capcom6/api-registry/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/capcom6/api-registry.svg?style=for-the-badge\n[forks-url]: https://github.com/capcom6/api-registry/network/members\n[stars-shield]: https://img.shields.io/github/stars/capcom6/api-registry.svg?style=for-the-badge\n[stars-url]: https://github.com/capcom6/api-registry/stargazers\n[issues-shield]: https://img.shields.io/github/issues/capcom6/api-registry.svg?style=for-the-badge\n[issues-url]: https://github.com/capcom6/api-registry/issues\n[license-shield]: https://img.shields.io/github/license/capcom6/api-registry.svg?style=for-the-badge\n[license-url]: https://github.com/capcom6/api-registry/blob/master/LICENSE.txt\n[product-screenshot]: https://github.com/capcom6/api-registry/raw/master/assets/ui.png\n[Python]: https://img.shields.io/badge/Python-000000?style=for-the-badge\u0026logo=python\u0026logoColor=white\n[Python-url]: https://python.org/\n[Redis]: https://img.shields.io/badge/Redis-000000?style=for-the-badge\u0026logo=redis\u0026logoColor=white\n[Redis-url]: https://redis.io/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapcom6%2Fapi-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcapcom6%2Fapi-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcapcom6%2Fapi-registry/lists"}