Welcome to the API Design Study Repository! This project is a hands-on exploration of API design patterns, covering REST API, GraphQL, and gRPC implementations across four popular frameworks: Node.js, Golang, Symfony, and Spring Boot.
api-design-study/
├── README.md
├── rest-api/
│ ├── nodejs/
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── controllers/
│ │ │ ├── routes/
│ │ │ └── app.js
│ ├── golang/
│ │ ├── go.mod
│ │ ├── main.go
│ │ ├── handlers/
│ │ └── routes/
│ ├── symfony/
│ │ ├── composer.json
│ │ └── src/
│ │ ├── Controller/
│ │ ├── Entity/
│ │ └── config/
│ └── spring-boot/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── controllers/
│ │ │ ├── services/
│ │ │ └── Application.java
├── graphql/
│ ├── nodejs/
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── resolvers/
│ │ │ └── schema/
│ │ └── app.js
│ ├── golang/
│ │ ├── go.mod
│ │ ├── main.go
│ │ ├── resolvers/
│ │ └── schema/
│ ├── symfony/
│ │ ├── composer.json
│ │ └── src/
│ │ ├── GraphQL/
│ │ ├── Entity/
│ │ └── config/
│ └── spring-boot/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── resolvers/
│ │ │ └── schema/
├── grpc/
│ ├── nodejs/
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── proto/
│ │ │ ├── server.js
│ │ │ └── client.js
│ ├── golang/
│ │ ├── go.mod
│ │ ├── proto/
│ │ ├── server/
│ │ └── client/
│ ├── symfony/
│ │ ├── composer.json
│ │ └── src/
│ │ ├── GRPC/
│ │ ├── Entity/
│ │ └── config/
│ └── spring-boot/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── grpc/
│ │ │ ├── server/
│ │ │ └── client/
└── docs/
├── REST-API.md
├── GraphQL.md
├── gRPC.md
└── framework-comparisons.md
- REST API: Comprehensive study of HTTP methods, request/response handling, and best practices.
- GraphQL: Efficient data retrieval with GraphQL schemas, resolvers, and queries.
- gRPC: Implementation of Protobuf-based gRPC server-client communication.
- Node.js: JavaScript runtime for building scalable APIs.
- Golang: Lightweight and fast language for robust API services.
- Symfony: PHP framework with structured components and rich tools.
- Spring Boot: Java-based framework tailored for microservices and enterprise APIs.
Ensure you have the following installed:
- Node.js
- Go
- PHP
- Java (with Maven)
- Docker (for optional containerized services)
-
Clone the repository:
git clone https://github.com/JawherKl/api-design-study.git
-
Navigate to a specific API type and framework:
cd api-design-study/rest-api/nodejs
-
Install dependencies and start the server:
npm install npm start
We welcome contributions! Feel free to:
- Fork this repository
- Raise issues
- Submit pull requests to enhance the repository
Give me stars! Thank you!!!