diff --git a/.404-links.yml b/.404-links.yml deleted file mode 100644 index 815d7cd..0000000 --- a/.404-links.yml +++ /dev/null @@ -1,6 +0,0 @@ -delay: - 'https://github.com': 500 #Avoiding Github rate limit by delaying the request -> 500ms -ignore: - urls: # Array of url to ignore - - https://swagger.io/ - diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..ffbc7b1 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,30 @@ +**Do not add your API**. This registry helps developers discover tools and good practices for building and consuming REST APIs. It is not a copllection of public facing APIs. + +**Do not add links to young tools**. This repository isn't a way to boost your Product Hunt visibility. If you launched a new tool, wait before it proves that it's widely useful before proposing it. + +Any PR disregarding these rules will be closed. + +If you have a genuine tool or resource to propose, please ensure your pull request adheres to the following guidelines: + +- Read [the awesome manifesto](https://github.com/sindresorhus/awesome/blob/master/awesome.md) and ensure your list complies. +- Search previous suggestions before making a new one, as yours may be a duplicate. +- Make sure your list is useful before submitting. That implies it having enough content and every item a good succinct description. +- Make an individual pull request for each suggestion. +- Titles should be capitalized. +- Use the following format: `[List Name](link)` +- If you have a comment about the link, add it after a dash, start it with a capital letter, and end it with a full stop. Avoid starting your comment with an article like "A", "The". +- Link additions should be added to the bottom of the relevant category. +- New categories or improvements to the existing categorization are welcome. +- Check your spelling and grammar. +- Make sure your text editor is set to remove trailing whitespace. +- The pull request and commit should have a useful title. + +Link format: + +``` +[Awesome resource name](resource link) - Performant REST client library by the famous John Doe. + ^ ^ ^ + dash capital letter, no article Full stop +``` + + diff --git a/.github/workflows/404-links.yml b/.github/workflows/404-links.yml index f6938a3..b0289d3 100644 --- a/.github/workflows/404-links.yml +++ b/.github/workflows/404-links.yml @@ -10,7 +10,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: 'atalent-labs-404-links' - uses: atalent-labs/404-links@3.1.6 + - uses: JustinBeckwith/linkinator-action@v2 + with: + paths: README.md env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 95eb9d0..b9b7a0b 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,7 @@ A collaborative list of great resources about RESTful API architecture, developm ## Design -* [Architectural Styles and -the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) - Roy Fielding's dissertation defining REST +* [Architectural Styles and the Design of Network-based Software Architectures](https://roy.gbiv.com/pubs/dissertation/top.htm) - Roy Fielding's dissertation defining REST * [HTTP API design guide extracted from work on the Heroku Platform API](https://github.com/interagent/http-api-design) * [Best Practices for Designing a Pragmatic RESTful API](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api) * [How to design a REST API?](https://blog.octo.com/en/design-a-rest-api/) - Full guide tackling security, pagination, filtering, versioning, partial answers, CORS, etc. @@ -55,7 +54,7 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie * [Cisco REST API Guide](https://github.com/CiscoDevNet/api-design-guide) - Guidelines for designing REST APIs at Cisco. * [Google Cloud API design guide](https://cloud.google.com/apis/design/) - Guidelines Google follows when designing Cloud APIs and other Google APIs (REST APIs and gRPC APIs). * [Haufe API Style Guide](https://github.com/Haufe-Lexware/api-style-guide) - Guidelines created by Haufe-Lexware CTO team. -* [Microsoft REST API Guidelines](https://github.com/Microsoft/api-guidelines/blob/vNext/Guidelines.md#readme) - The Microsoft REST API Guidelines, as a design principle, encourages application developers to have resources accessible to them via a RESTful HTTP interface. +* [Microsoft REST API Guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/graph/GuidelinesGraph.md) - The Microsoft REST API Guidelines, as a design principle, encourages application developers to have resources accessible to them via a RESTful HTTP interface. * [Restful API Guidelines by Zalando](https://github.com/zalando/restful-api-guidelines) - Developing Restful APIs: A Comprehensive Set of Guidelines. ## Standards @@ -155,7 +154,6 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie * [REST APIs with Symfony2: the Right Way](https://williamdurand.fr/2012/08/02/rest-apis-with-symfony2-the-right-way/) - Complete guide to build a state-of-the-art REST API with Symfony2 framework. * [FOSRestBundle](https://github.com/FriendsOfSymfony/FOSRestBundle) - Bundle handling view, routing, error handling, etc. for your REST API. * [stanlemon/rest-bundle](https://github.com/stanlemon/rest-bundle) - Build a REST API based on Doctrine entities using conventions over configuration. -* [lakion/Lionframe](http://lakion.com/lionframe) - Glu between several community libraries to ease API development. * [BazingaHateoasBundle](https://github.com/willdurand/BazingaHateoasBundle) - Integrate the [Hateoas](https://github.com/willdurand/Hateoas) library into a Symfony2 application. * [Symfony REST Edition](https://github.com/gimler/symfony-rest-edition) - Start with a Symfony2 application with all REST-friendly bundles pre-configured. * [NgAdminGeneratorBundle](https://github.com/marmelab/NgAdminGeneratorBundle) - Boostrap ng-admin configuration based on `stanlemon/rest-bundle`. @@ -181,7 +179,7 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie * [apistar](https://github.com/encode/apistar) - A smart Web API framework, designed for Python 3. * [Falcon](https://github.com/falconry/falcon) - Falcon is a bare-metal Python web API framework for building high-performance microservices, app backends, and higher-level frameworks. * [FastAPI](https://github.com/tiangolo/fastapi) - FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. With automatic API documentation using Swagger UI and ReDoc, based on OpenAPI and JSON Schema. -* [Zato](https://zato.io) - Platform for building server-side integrations, automations and API backends in Python. +* [Zato](https://github.com/zatosource/zato/) - Platform for building server-side integrations, automations and API backends in Python. ### Ruby @@ -197,7 +195,6 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie * [go-relax](https://github.com/codehack/go-relax) - Framework of pluggable components to build RESTful API's. * [go-rest](https://github.com/ungerik/go-rest) - Small and evil REST framework for Go. * [go-restful](https://github.com/emicklei/go-restful) - A declarative highly readable framework for building restful API's. -* [Goat](https://github.com/bahlo/goat) - Minimalistic REST API server in Go. * [Resoursea](https://github.com/resoursea/api) - REST framework for quickly writing resource based services. ### Java @@ -235,15 +232,16 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie ### Mocking -* [RequestBin](https://requestbin.com/) - Inspect and debug webhook requests sent by your clients or third-party APIs. -* [httpbin](https://httpbin.org) - HTTP request and response service - a/k/a Swiss Army Knife for HTTP. * [FakeRest](https://github.com/marmelab/FakeRest) - Redirect fetch() calls to a client-side fake REST API. * [json-server](https://github.com/typicode/json-server) - Serve a REST API from fixture files using quick prototyping. +* [RequestBin](https://requestbin.com/) - Inspect and debug webhook requests sent by your clients or third-party APIs. +* [httpbin](https://httpbin.org) - HTTP request and response service - a/k/a Swiss Army Knife for HTTP. * [MockServer](https://www.mock-server.com/) - Easy mocking of any system you integrate with via HTTP or HTTPS. * [Request Baskets](https://github.com/darklynx/request-baskets) - Service to collect HTTP requests and inspect them via RESTful API or web UI. * [DuckRails](https://github.com/iridakos/duckrails) - Mock quickly & dynamically API endpoints. * [Mockoon](https://mockoon.com) - Easily create mock APIs locally. No remote deployment, no account required, open source. * [Mockintosh](https://mockintosh.io/) - A mock server generator that's capable to generate RESTful APIs and communicate with the message queues to mimick asynchronous tasks. +* [Mockae](https://mockae.com/) - Fake REST API powered by Lua. ### Validating @@ -251,13 +249,9 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie ### Public REST APIs To Use In Tests -* [Deck of Cards API](https://deckofcardsapi.com) - Open API for simulating a deck of cards. * [Public APIs](https://publicapis.dev/) - The world's largest directory of public APIs. -* [Marvel Comics API](https://developer.marvel.com/) - Query characters, stories, events about Marvel superheroes. -* [JSON Placeholder](https://jsonplaceholder.typicode.com/) - Free online REST service that you can use whenever you need some fake data. * [APIs.guru](https://APIs.guru) - Wikipedia for Web APIs, each API has OpenAPI/Swagger description. -* [The Cat API](https://theCatAPI.com) - Public API for Cats Images, Facts and Jokes. -* [Mockae](https://mockae.com/) - Fake REST API powered by Lua. +* [JSON Placeholder](https://jsonplaceholder.typicode.com/) - Fake REST API abput posts, users and comments ## Documentation @@ -276,7 +270,7 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie * [API Umbrella](https://github.com/NREL/api-umbrella) - API management platform for exposing web services, with web interface and analytics, written in Lua. * [WSO2 API Management](https://github.com/wso2/product-apim) - API management tool with lightweight gateway and API lifecycle management, written in Java. * [Express Gateway](https://github.com/ExpressGateway/express-gateway) - Microservices API Gateway built on top of ExpressJS (Node.js). -* [KrakenD](https://github.com/devopsfaith/krakend) - Ultra performant API Gateway with middleware. Written in Go. +* [Lura](https://github.com/luraproject/lura) - Ultra performant API Gateway with middleware. Written in Go. * [AWS API Gateway](https://aws.amazon.com/api-gateway/) - Fully managed service that helps developers to create, publish, maintain, monitor, and secure APIs at any scale. * [Zuplo](https://zuplo.com/) - OpenAPI-Powered API & MCP Management platform for Security, Deployment, and Documentation. Add auth, rate-limiting, and monetization to your API or MCP Server in minutes, written in TypeScript & Go. @@ -284,6 +278,7 @@ the Design of Network-based Software Architectures](https://www.ics.uci.edu/~fie * [Nango](https://github.com/NangoHQ/nango) - Native integrations framework to consume REST APIs (open-source). * [Runscope](https://www.runscope.com/) - Automated API Monitoring & Testing. +* [Keploy](https://keploy.io) - Open-source API testing and data mocking tool that generates test cases and stubs automatically from real traffic, enabling end-to-end API testing and monitoring. * [Ping-API](https://ping-api.com/) - Automated API Monitoring & Testing. * [Apiary](https://apiary.io/) - Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing. * [Amazon API Gateway](https://aws.amazon.com/api-gateway/) - Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale. diff --git a/contributing.md b/contributing.md index a6eb42d..263b2ea 100644 --- a/contributing.md +++ b/contributing.md @@ -2,6 +2,7 @@ Please ensure your pull request adheres to the following guidelines: +- Do not add your REST API to the list. This is not a registry of all possible REST APIs, but a list of reources and tools to build and use REST APIs effectively - Read [the awesome manifesto](https://github.com/sindresorhus/awesome/blob/master/awesome.md) and ensure your list complies. - Search previous suggestions before making a new one, as yours may be a duplicate. - Make sure your list is useful before submitting. That implies it having enough content and every item a good succinct description.