https://github.com/jawherkl/api-design
Welcome to the API Design Study Repository! This project is a hands-on exploration of API-design, covering REST API, GraphQL, and gRPC.
https://github.com/jawherkl/api-design
api-design graphql grpc javascript rest-api soap webhook websocket
Last synced: 11 months ago
JSON representation
Welcome to the API Design Study Repository! This project is a hands-on exploration of API-design, covering REST API, GraphQL, and gRPC.
- Host: GitHub
- URL: https://github.com/jawherkl/api-design
- Owner: JawherKl
- Created: 2024-10-02T09:37:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-15T13:53:00.000Z (about 1 year ago)
- Last Synced: 2025-03-30T10:41:31.856Z (about 1 year ago)
- Topics: api-design, graphql, grpc, javascript, rest-api, soap, webhook, websocket
- Language: JavaScript
- Homepage: https://medium.com/@jawherkl/api-design-mastery-build-scalable-apis-like-a-pro-open-source-guide-e0a55861a068
- Size: 11.4 MB
- Stars: 29
- Watchers: 3
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API Design Study Repository 🚀






Welcome to the **API Design Study Repository**! This project is a hands-on exploration of API design patterns, covering **REST API**, **GraphQL**, **gRPC**, **SOAP**, **Webhook** and **Websocket** implementations across four popular frameworks: **Node.js**, **Golang**, **Symfony**, and **Spring Boot**.
---
## 📂 Project Structure
```
api-design-study/
│── docs/
│ ├── images/
│ |── framework-comparison.md
│ ├── GraphQL.md
│ ├── gRPC.md
│ ├── REST-API.md
| ├── SOAP.md
│ ├── Webhook.md
│ └── Websocket.md
├── graphql/
│ ├── golang/
│ ├── nodejs/
│ |── spring-boot/
│ └── symfony/
├── grpc/
│ ├── golang/
│ ├── nodejs/
│ |── spring-boot/
│ └── symfony/
├── rest-api/
│ ├── golang/
│ ├── nodejs/
│ |── spring-boot/
│ └── symfony/
├── soap/
│ ├── golang/
│ ├── nodejs/
│ |── spring-boot/
│ └── symfony/
├── webhook/
│ ├── golang/
│ ├── nodejs/
│ |── spring-boot/
│ └── symfony/
├── websocket/
│ ├── golang/
│ ├── nodejs/
│ |── spring-boot/
│ └── symfony/
└── README.md
```
---
## ✨ Features
- **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.
- **Webhook**: Automated HTTP callbacks for real-time event notifications.
- **WebSocket**: Full-duplex communication channels for real-time data exchange over a single TCP connection.
---
## 🌐 Frameworks Covered
- **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.
---
## 🚀 Getting Started
### Prerequisites
Ensure you have the following installed:
- **Node.js**
- **Go**
- **PHP**
- **Java** (with Maven)
- **Docker** (for optional containerized services)
### Setup
1. Clone the repository:
```bash
git clone https://github.com/JawherKl/api-design-study.git
```
2. Navigate to a specific API type and framework:
```bash
cd api-design-study/rest-api/nodejs
```
3. Install dependencies and start the server:
```bash
npm install
npm start
```
---
## 📚 Documentation
- [REST API Design](docs/REST-API.md)
- [GraphQL API Design](docs/GraphQL.md)
- [gRPC API Design](docs/gRPC.md)
- [SOAP API Design](docs/SOAP.md)
- [webhook API Design](docs/Webhook.md)
- [websocket API Design](docs/Websocket.md)
- [Framework Comparisons](docs/framework-comparisons.md)
---
## 🤝 Contribution
We welcome contributions! Feel free to:
- Fork this repository
- Raise issues
- Submit pull requests to enhance the repository
---
## Stargazers over time 🌟
[](https://starchart.cc/JawherKl/api-design)