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