# API Design — Resources

## Official Guidelines

- [Microsoft REST API Guidelines](https://github.com/microsoft/api-guidelines) — REST best practices from Microsoft.
- [Google API Design Guide](https://cloud.google.com/apis/design) — Google's API design principles.
- [GraphQL Specification](https://spec.graphql.org/) — Official GraphQL spec.

## REST and HTTP

- [REST API Tutorial](https://restfulapi.net/) — REST concepts and examples.
- [HTTP Status Codes](https://httpstatuses.com/) — Quick reference for status codes.
- [RFC 7807 — Problem Details](https://tools.ietf.org/html/rfc7807) — Standard error format.

## GraphQL

- [GraphQL.org](https://graphql.org/) — Official docs and learning resources.
- [How to GraphQL](https://www.howtographql.com/) — Full-stack GraphQL tutorial.
- [Apollo GraphQL](https://www.apollographql.com/docs/) — Client and server tooling.

## Contract-First and OpenAPI

- [OpenAPI Specification](https://swagger.io/specification/) — OpenAPI 3.0 reference.
- [Stoplight](https://stoplight.io/) — API design and documentation tools.
- [Postman](https://www.postman.com/) — API testing and documentation.

## Articles and Books

- [Martin Fowler — Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html) — REST maturity levels.
- [InfoQ — REST vs GraphQL](https://www.infoq.com/articles/rest-graphql/) — Comparison articles.
- **RESTful Web APIs** by Leonard Richardson — REST design in depth.
- **Designing Web APIs** by Brenda Jin — API design patterns.

## Videos

- [REST API Design — Java Brains](https://www.youtube.com/watch?v=QpQxRd1Y2xY) — REST design principles.
- [GraphQL in 5 Minutes](https://www.youtube.com/watch?v=ZQL7tL2S0oQ) — Quick GraphQL intro.
- [API Design — Google I/O](https://www.youtube.com/results?search_query=google+io+api+design) — Conference talks.

## Podcasts

- [APIs You Won't Hate](https://apisyouwonthate.com/podcast/) — Phil Sturgeon. API design, versioning, and developer experience.
- [Software Engineering Daily — API Design](https://softwareengineeringdaily.com/?s=api+design) — Technical episodes on REST, GraphQL, and gRPC decisions.
- [Changelog — API Economy](https://changelog.com/podcast) — Episodes on public API design and developer relations.

## Interactive and Visual

- [Swagger Editor](https://editor.swagger.io/) — Write and visualize OpenAPI specs in the browser with live preview.
- [Hoppscotch](https://hoppscotch.io/) — Open-source API testing tool — explore REST, GraphQL, and WebSocket APIs interactively.
- [GraphQL Playground (Apollo)](https://www.apollographql.com/docs/graphos/explorer/) — Interactive GraphQL IDE for exploring schemas and running queries.

## Courses

- [Designing RESTful APIs (Udacity — free)](https://www.udacity.com/course/designing-restful-apis--ud388) — Short free course on REST principles and Flask implementation.
- [How to GraphQL (free)](https://www.howtographql.com/) — Full-stack GraphQL tutorial covering fundamentals and frontend/backend tracks.
