Skip to content

NodeToolbox/api-design

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 

Repository files navigation

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, and gRPC implementations across four popular frameworks: Node.js, Golang, Symfony, and Spring Boot.


πŸ“‚ Project Structure

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

✨ 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.

🌐 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:

    git clone https://github.com/JawherKl/api-design-study.git
  2. Navigate to a specific API type and framework:

    cd api-design-study/rest-api/nodejs
  3. Install dependencies and start the server:

    npm install
    npm start

πŸ“š Documentation


🀝 Contribution

We welcome contributions! Feel free to:

  • Fork this repository
  • Raise issues
  • Submit pull requests to enhance the repository

🌟 Happy Learning and Building! 🌟

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published