การออกแบบจุดเชื่อมต่อ RESTful API
เรียนรู้หลักการสำคัญของ REST และออกแบบจุดเชื่อมต่อ API ที่เป็นระเบียบและมีประสิทธิภาพสำหรับทรัพยากรต่าง ๆ
การออกแบบจุดเชื่อมต่อ RESTful API เป็นบทเรียน Node.js Backend Development Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Node.js Backend Development Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Node.js Backend Development Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
Intro to RESTful APIs
Welcome! In this lesson, we'll dive into designing clean and efficient API endpoints following REST principles. Understanding REST is crucial for building scalable web services.
REST stands for Representational State Transfer. It's an architectural style for networked applications, emphasizing a stateless client-server communication.
Resources: The Nouns of REST
At the heart of REST are resources. Think of resources as any information or data that your API can provide or manipulate. They are the 'things' your API manages.
- A resource is identified by a unique URL (Uniform Resource Locator).
- They are typically represented by nouns, like
users,products, ororders. - Ideally, use plural nouns for collections of resources.
Actions with HTTP Methods
While resources are nouns, the actions you perform on them are indicated by standard HTTP methods (also called verbs). These methods correspond directly to common data operations:
- GET: Retrieve data (Read)
- POST: Create new data (Create)
- PUT: Replace existing data (Update all)
- PATCH: Partially update existing data (Update partial)
- DELETE: Remove data (Delete)
Structuring Your API Endpoints
A well-designed endpoint URL should be intuitive and predictable. It typically follows a pattern:
/api/<version>/<resource_name>Using a version (like v1) is good practice for future API changes. Always use plural nouns for resource names.
- Good:
/api/v1/users - Bad:
/api/v1/getUsers
Collection and Item URLs
REST APIs distinguish between a collection of resources and a single resource within that collection:
- Collection URL: Refers to a group of resources. E.g.,
/users(all users). - Item URL: Refers to a specific resource. E.g.,
/users/123(user with ID 123).
The ID (:id in Express) is a unique identifier for that specific resource.
Speaking with Status Codes
HTTP status codes are crucial for your API to communicate the outcome of a request to the client. They tell the client if the request was successful, if there was an error, and why.
- 200 OK: Request successful.
- 201 Created: Resource successfully created.
- 204 No Content: Request successful, but no content to return (e.g., DELETE).
- 400 Bad Request: Client sent invalid data.
- 404 Not Found: Resource not found.
- 500 Internal Server Error: Server-side error.
User API Endpoint Design
Let's design endpoints for a User resource. Notice how HTTP methods and URLs combine to describe actions.
Try running this example to see the routes in action:
const express = require('express');
const app = express();
const port = 3000;
// Get all users
app.get('/api/v1/users', (req, res) => {
res.status(200).send('GET /api/v1/users: Retrieve all users');
});
// Create a new user
app.post('/api/v1/users', (req, res) => {
res.status(201).send('POST /api/v1/users: Create a new user');
});
// Get a specific user by ID
app.get('/api/v1/users/:id', (req, res) => {
res.status(200).send(`GET /api/v1/users/${req.params.id}: Retrieve user ${req.params.id}`);
});
// Update a specific user by ID
app.put('/api/v1/users/:id', (req, res) => {
res.status(200).send(`PUT /api/v1/users/${req.params.id}: Update user ${req.params.id}`);
});
// Delete a specific user by ID
app.delete('/api/v1/users/:id', (req, res) => {
res.status(204).send(`DELETE /api/v1/users/${req.params.id}: Delete user ${req.params.id}`);
});
app.listen(port, () => {
console.log(`User API running on http://localhost:${port}`);
});Product API Endpoint Design
Here's another example for a Product resource. The patterns remain consistent, making your API easy to understand and use for developers.
Run this code to see a product-focused API:
const express = require('express');
const app = express();
const port = 3001; // Using a different port
// Get all products
app.get('/api/v1/products', (req, res) => {
res.status(200).send('GET /api/v1/products: Retrieve all products');
});
// Create a new product
app.post('/api/v1/products', (req, res) => {
res.status(201).send('POST /api/v1/products: Create a new product');
});
// Get a specific product by ID
app.get('/api/v1/products/:id', (req, res) => {
res.status(200).send(`GET /api/v1/products/${req.params.id}: Retrieve product ${req.params.id}`);
});
// Delete a specific product by ID
app.delete('/api/v1/products/:id', (req, res) => {
res.status(204).send(`DELETE /api/v1/products/${req.params.id}: Delete product ${req.params.id}`);
});
app.listen(port, () => {
console.log(`Product API running on http://localhost:${port}`);
});Clean URL Best Practices
To ensure your API is user-friendly and maintainable, follow these best practices:
- Use Plural Nouns: For collections (e.g.,
/products, not/product). - Avoid Verbs in URLs: Let HTTP methods define actions (e.g.,
POST /users, not/createUser). - Use Hyphens: For readability in multi-word resource names (e.g.,
/order-items). - Keep URLs Simple: Avoid deep nesting; query parameters can handle filtering/sorting.
Test Your REST Knowledge
Which of the following endpoint designs correctly follows RESTful principles for creating a new product and retrieving a specific product?
Recap: Designing RESTful Endpoints
Great job! You've learned the fundamentals of designing RESTful API endpoints. Remember these key takeaways:
- Resources are the nouns, identified by URLs.
- HTTP Methods (GET, POST, PUT, DELETE) define actions.
- Use plural nouns for collections and specific IDs for items.
- Communicate outcomes using appropriate HTTP Status Codes.
- Strive for clean, predictable URLs for a user-friendly API.
This foundation will help you build robust and intuitive APIs!
คำถามที่พบบ่อย
บทเรียน “การออกแบบจุดเชื่อมต่อ RESTful API” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การออกแบบจุดเชื่อมต่อ RESTful API” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Node.js Backend Development Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Node.js Backend Development Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การออกแบบจุดเชื่อมต่อ RESTful API”
เรียนรู้หลักการสำคัญของ REST และออกแบบจุดเชื่อมต่อ API ที่เป็นระเบียบและมีประสิทธิภาพสำหรับทรัพยากรต่าง ๆ คุณปฏิบัติ Node.js Backend Development Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Node.js Backend Development Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Node.js Backend Development Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การออกแบบจุดเชื่อมต่อ RESTful API” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Node.js Backend Development Bootcamp นี้ได้ไหม
ได้ บทเรียน Node.js Backend Development Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานกรอบงาน Express.js
- การกำหนดเส้นทางและมิดเดิลแวร์ใน Express
- การออกแบบจุดเชื่อมต่อ RESTful API
- การจัดการข้อมูลคำขอ: เนื้อหา คิวรี และพารามิเตอร์