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