Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

RESTful API License: MIT

Supported packages, build your own http server less than 5 minutes:

  • Deserve - HTTP framework (file-based routing)
  • Jsonary - File-based database (JSON)

📦 Installation

# Clone or download this project
git clone https://github.com/NeaByteLab/Restful-API.git
cd Restful-API

🏃 Quick Start

1. Start the Server

deno task start

Server runs on: http://localhost:8000

2. Test the API

# 1. Get API info
curl http://localhost:8000/
# 2. List all users
curl http://localhost:8000/users
# 3. Create a new user
curl -X POST http://localhost:8000/users \
-H "Content-Type: application/json" \
-d '{"name":"Alice","email":"alice@example.com","age":30}'# 4. Get user by ID (replace {id} with actual user ID from step 3)
curl http://localhost:8000/users/{id}
# 5. Update user (replace {id} with actual user ID)
curl -X PUT http://localhost:8000/users/{id} \
-H "Content-Type: application/json" \
-d '{"name":"Alice Updated","email":"alice.updated@example.com"}'# 6. Delete user (replace {id} with actual user ID)
curl -X DELETE http://localhost:8000/users/{id}
# 7. Test error handling - Non-existent user (404)
curl http://localhost:8000/users/non-existent-id
# 8. Test validation - Missing required fields (400)
curl -X POST http://localhost:8000/users \
-H "Content-Type: application/json" \
-d '{"name":"Test"}'

📚 API Endpoints

Base URL

http://localhost:8000

Endpoints

MethodEndpointDescription
GET/API information
GET/usersList all users
POST/usersCreate a user
GET/users/:idGet user by ID
PUT/users/:idUpdate user
DELETE/users/:idDelete user

📖 API Documentation

GET / - API Info

Returns API information and available endpoints.

Response:

{
"name": "RESTful API",
"version": "1.0.0",
"endpoints": {
"users": {
"list": "GET /users",
"create": "POST /users",
"get": "GET /users/:id",
"update": "PUT /users/:id",
"delete": "DELETE /users/:id"
}
}
}

GET /users - List All Users

Response:

{
"total": 2,
"users": [
{
"name": "Alice",
"email": "alice@example.com",
"age": 30,
"id": "uuid-here",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
]
}

POST /users - Create User

Request:

{
"name": "Bob",
"email": "bob@example.com",
"age": 25
}

Required fields:name, email

Response (201):

{
"message": "User created successfully",
"user": {
"name": "Bob",
"email": "bob@example.com",
"age": 25,
"id": "uuid-here",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
}

GET /users/:id - Get User

Response:

{
"user": {
"name": "Alice",
"email": "alice@example.com",
"age": 30,
"id": "uuid-here",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
}

PUT /users/:id - Update User

Request:

{
"name": "Alice Updated",
"email": "alice.new@example.com"
}

Response:

{
"message": "User updated successfully",
"user": {
"name": "Alice Updated",
"email": "alice.new@example.com",
"age": 30,
"id": "uuid-here",
"updatedAt": "2024-01-01T01:00:00.000Z"
}
}

DELETE /users/:id - Delete User

Response (200):

{
"message": "User deleted successfully",
"deleted": 1,
"id": "uuid-here"
}

🏗️ Project Structure

Restful-API/
├── core/
│ ├── index.ts # Server setup
│ ├── db.ts # Database instance
│ └── mware/
│ └── logger.ts # Request logging
├── routes/
│ ├── index.ts # GET /
│ ├── users.ts # GET, POST /users
│ └── users/
│ └── [id].ts # GET, PUT, DELETE /users/:id
├── db.json # Data storage (auto-generated)
├── deno.json # Deno configuration
└── README.md # This file

📄 License

This project is licensed under the MIT license. See the LICENSE file for more info.

About

RESTful API built with Deno, Deserve framework, and Jsonary database that provides CRUD operations with quick setup under 5 minutes.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages