Xem Nhiều 12/2022 #️ Tạo 1 Rest Api Phục Vụ Cho Mục Đích Học Tập Trong 30 Giây / 2023 # Top 13 Trend | Toiyeucogaihalan.com

Xem Nhiều 12/2022 # Tạo 1 Rest Api Phục Vụ Cho Mục Đích Học Tập Trong 30 Giây / 2023 # Top 13 Trend

Cập nhật thông tin chi tiết về Tạo 1 Rest Api Phục Vụ Cho Mục Đích Học Tập Trong 30 Giây / 2023 mới nhất trên website Toiyeucogaihalan.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Bài hướng dẫn dành cho các Frontend Developer hoặc Mobile Developer (có thể gọi chung là Client Developer 😂).

Video demo: https://youtu.be/O6Agt4cLbfo.

Dựng Server local

– Yêu cầu máy tính đã cài và chạy được Git + NodeJS.

– Các bước thực hiện:

git clone https://github.com/robinhuy/fake-rest-api-nodejs.git

Cài đặt dependencies

cd fake-rest-api-nodejs npm install

– Vậy là chúng ta đã có 1 Server API chạy trên http://localhost:3000 với 1 resource có sẵn là /users với các API theo chuẩn REST:

GET /users GET /users/1 POST /users PUT /users/1 PATCH /users/1 DELETE /users/1

– Ngoài ra Server còn cung cấp thêm 1 phương thức Authentication bằng JWT (Bearer token), xác thực user bằng email và password qua API:

(dữ liệu truyền lên dạng { email: “example@gmail.com”, password: “secret” }, thông tin lấy trong resource users).

– Những resource và method được khai báo trong protected_resources thì cần đăng nhập để thực hiện, ví dụ:

"protected_resources": { "users": ["GET", "POST", "PUT", "PATCH", "DELETE"], "products": ["POST", "PUT", "PATCH", "DELETE"] }

– Nếu bạn muốn tuỳ chỉnh lại hoặc bổ sung cơ chế Authentication thì có thể chỉnh sửa lại ở file server.js phần Access control

Chú ý: Sau khi chỉnh sửa code cần khởi động lại server!

Chỉnh sửa API

– API mặc định là thông tin về User, toàn bộ được lưu vào trong file database.json. Có thể chỉnh sửa hoặc thêm dữ liệu vào file đó miễn khai báo đúng cấu trúc (chú ý users hiện đang được dùng luôn cho cả authentication). Ví dụ thêm 1 resource về products:

– Nếu cần mockup dữ liệu lớn và ngẫu nhiên thì có thể dùng thêm dịch vụ sau https://mockaroo.com/. Mockaroo cho phép mockup dữ liệu rất đa dạng, cấu hình được tỉ lệ, viết thêm các function điều kiện để tạo dữ liệu và cho phép xuất mockup ra dưới nhiều định dạng trong đó có JSON.

Dựng server online

– Nếu là đại gia thì có thể sử dụng VPS hoặc nếu không thì có thể sử dụng dịch vụ của Heroku (hoặc các dịch vụ tương tự): Đăng ký tài khoản, tạo App và đẩy source code kèm file chúng tôi lên. Khi deploy code có thể chọn Heroku Git và gõ lệnh theo hướng dẫn bên dưới hoặc chọn kết nối với Github repo để deploy code qua 1 nút bấm (hoặc auto deploy khi có commit lên github).

– Cần chú ý là nếu dùng gói Free thì khi Server không hoạt động (không có truy cập) sau 30 phút thì Server sẽ rơi vào trạng thái Sleep, lần truy cập kế tiếp sẽ hơi chậm 1 chút và mọi dữ liệu sẽ reset về ban đầu (như trong file database.json).

Hướng Dẫn Tạo Secure Rest Api Trong / 2023

Ở các bài viết trước, VNTALKING đã hướng dẫn các bạn cách xây dựng REST API bằng chúng tôi + Express. Các bạn có thể xem trước khi quay lại bài viết này:

🙋 Tạo RESTful API đơn giản bằng Nodejs + MongoDB

Tuy nhiên, còn một công đoạn quan trọng mà bạn cần phải làm trước khi đưa sản phẩm thành product. Đó chính là bảo mật các REST API, hay nói cách khác là tạo secure REST API.

Mục tiêu của việc tạo secure REST API là để bạn có thể cấp phép cho một ứng dụng cụ thể nào đó, được phép sử dụng API.

Bài viết này, mình sẽ hướng dẫn các bạn tạo secure REST API bằng chúng tôi Cụ thể, chúng ta sẽ cùng nhau thực hành tạo API để ứng dụng truy cập vào tài nguyên quản lý người dùng trong hệ thống.

Nội dung chính của bài viết

Secure REST API là gì?

API nói chung, REST API nói riêng, là phương thức để cung cấp một dịch vụ mà phía server có thể thực hiện.

Vấn đề phát sinh ra ở đây là: Bên dịch vụ cung cấp API muốn xác định được thông tin của phía sử dụng API. Mục đích có thể là:

Thu phí sử dụng dịch vụ chẳng hạn,

Hoặc giới hạn chỉ cho một số ứng dụng cụ thể được phép sử dụng.v.v…

Đó là lúc chúng ta cần tạo secure Rest API. Thực ra secure REST API vẫn là REST API đó thôi, chỉ là chúng ta cần thêm một luồng để xác thực danh tính người sử dụng API đó, ví dụ thông qua quá trình login chẳng hạn.

Giới thiệu dự án tạo secure REST API trong bài viết

Một người dùng (user) có những thông tin sau:

id (tự động generated bởi UUID)

firstName

lastName

email

password

permissionLevel (Sử dụng để phân quyền User)

Danh sách các APIs sẽ xây dựng:

[POST] endpoint/users

[GET] endpoint/users (danh sách users)

[GET] endpoint/users/:userId (lấy một user cụ thể)

[PATCH] endpoint/users/:userId (cập nhật thông tin một user cụ thể )

[DELETE] endpoint/users/:userId (xóa một user cụ thể)

Ngoài ra, chúng ta sử dụng JWT (JSON Web Token) cho access token. Để làm được điều này, chúng ta sẽ tạo thêm một resource nữa, gọi là auth, sử dụng email và password để tạo chuỗi token dùng để xác thực giữa client và server.

Cài đặt môi trường

Để thực hiện dự án này, chúng ta cần phải cài đặt môi trường phát triển gồm có:

Sau khi cài đặt xong, môi trường phát triển đã chuẩn bị xong. Bước tiếp là tạo mới một dự án chúng tôi npm init

Sau khi tạo xong dự án, để thống nhất danh sách các dependencies sử dụng trong dự án, bạn có thể copy nội dùng chúng tôi và paste vào dự án của bạn

{ "name": "rest-api-tutorial", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "VNTALKING", "license": "ISC", "dependencies": { "body-parser": "1.7.0", "express": "^4.8.7", "jsonwebtoken": "^7.3.0", "moment": "^2.17.1", "moment-timezone": "^0.5.13", "mongoose": "^5.1.1", "node-uuid": "^1.4.8", "swagger-ui-express": "^2.0.13", "sync-request": "^4.0.2" } }

Cuối cùng, chúng ta tạo thêm 3 thư mục, tương ứng 3 modules:

“common” (xử lý tất cả dịch vụ và thông tin được chia sẻ giữa các module)

“auth” (xử lý việc tạo JWT và luồng login – xác thực)

Tạo User Module

Chúng ta sử dụng thư viện Mongoose trong dự án để tương tác với MongoDB.

Đầu tiên, tạo User schema: /users/models/users.model.js

const userSchema = new Schema({ firstName: String, lastName: String, email: String, password: String, permissionLevel: Number });

Sau khi định nghĩa xong schema, bạn dễ dàng attach schema đó vào user model:

const userModel = mongoose.model('Users', userSchema);

Sau khi định nghĩa model xong, bạn sẽ sử dụng model cho tất cả các thao tác CRUD với DB.

API thêm User

Ở phần này, chúng ta sẽ tạo API: [POST] endpoint/users

Chúng ta định nghĩa route cho api này tại users/routes.config.js

app.post('/users', [ UsersController.insert ]);

Phần comtroller, chúng ta sẽ xử lý mã hóa giá trị password, mở /users/controllers/users.controller.js

let salt = crypto.randomBytes(16).toString(‘base64’); let hash = crypto.createHmac(‘sha512’,salt) .update(req.body.password) .digest(“base64”); req.body.password = salt + “$” + hash; req.body.permissionLevel = 1; UserModel.createUser(req.body) res.status(201).send({id: result._id}); }); };

Ở đoạn code trên, chúng có gọi hàm UserModel.createUser(req.body) để lưu dữ liệu vào DB. Nhưng mà chúng ta chưa có viết hàm này, bạn mà chạy là bị lỗi compile luôn.Mở users/models/users.model.js và thêm đoạn này:

const user = new User(userData); return user.save(); };

API lấy thông tin một User

Ở phần này, chúng ta sẽ tạo API: [GET] endpoint/users/:userId

Bạn mở /users/routes/config.js để định nghĩa router:

app.get('/users/:userId', [ UsersController.getById ]);

Sau đó, trong controller /users/controllers/users.controller.js

res.status(200).send(result); }); };

Cuối cùng thì sử dụng hàm findById trong model (/users/models/users.model.js)để tìm User trong DB.

result = result.toJSON(); delete result._id; delete result.__v; return result; }); };

Vậy là xong cho API rồi đấy.

Các API cho update, xóa và lấy danh sách users, các bạn làm tương tự. Có thể tham khảo trong mã nguồn đầy đủ, mình để ở dưới bài viết.

Chúng ta chuyển sang phần trọng tâm của bài viết, đó là xây dựng lớp bảo mật cho API.

Tạo Auth module

Trước khi chúng ta có thể bảo mật user module bằng cách thực hiện phân quyền và xác thực. Chúng ta cần phải tạo mã access token cho người/ứng dụng sử dụng API.

Như mình đã đề cập ở trên, chúng ta sẽ sử dụng JWT để tạo access token. Trong bài viết này, nó là một chuỗi JSON được tạo dựa trên thông email và password của người dùng. Tất nhiên, chúng ta sẽ bổ sung thêm thời hạn mà mã access token này hết hạn để gia tăng tính bảo mật.

{ "email" : "support@vntalking.com", "password" : "s3cr3tp4sswo4rd2" }

Trước khi chuyển sang controller, chúng ta tạo một middleware để xác thực (/authorization/middlewares/verify.user.middleware.js)

UserModel.findByEmail(req.body.email) if(!user[0]){ res.status(404).send({}); }else{ let passwordFields = user[0].password.split(‘$’); let salt = passwordFields[0]; let hash = crypto.createHmac(‘sha512′, salt).update(req.body.password).digest(“base64”); if (hash === passwordFields[1]) { chúng tôi = { userId: user[0]._id, email: user[0].email, permissionLevel: user[0].permissionLevel, provider: ’email’, name: user[0].firstName + ‘ ‘ + user[0].lastName, }; return next(); } else { return res.status(400).send({errors: [‘Invalid email or password’]}); } } }); };

Ok, giờ thì chuyển sang controller và tạo mã JWT

try { let refreshId = req.body.userId + jwtSecret; let salt = crypto.randomBytes(16).toString(‘base64’); let hash = crypto.createHmac(‘sha512’, salt).update(refreshId).digest(“base64”); req.body.refreshKey = salt; let token = jwt.sign(req.body, jwtSecret); let b = new Buffer(hash); let refresh_token = b.toString(‘base64’); res.status(201).send({accessToken: token, refreshToken: refresh_token}); } catch (err) { res.status(500).send({errors: err}); } };

Mặc dù trong bài viết này, mình không có implement việc tạo mới access token khi mã token cũ hết hạn. Nhưng mình cũng để sẵn code để bạn thêm vào trong tương lai một cách dễ dàng.

Cuối cùng là tạo route và gọi middleware tương ứng

app.post('/auth', [ VerifyUserMiddleware.hasAuthValidFields, VerifyUserMiddleware.isPasswordAndUserMatch, AuthorizationController.login ]);

Kết quả thu được mã access toke giống như thế này

{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI1YjAyYzVjODQ4MTdiZjI4MDQ5ZTU4YTMiLCJlbWFpbCI6Im1hcmNvcy5oZW5yaXF1ZUB0b3B0YWwuY29tIiwicGVybWlzc2lvbkxldmVsIjoxLCJwcm92aWRlciI6ImVtYWlsIiwibmFtZSI6Ik1hcmNvIFNpbHZhIiwicmVmcmVzaF9rZXkiOiJiclhZUHFsbUlBcE1PakZIRG1FeENRPT0iLCJpYXQiOjE1MjY5MjMzMDl9.mmNg-i44VQlUEWP3YIAYXVO-74803v1mu-y9QPUQ5VY", "refreshToken": "U3BDQXBWS3kyaHNDaGJNanlJTlFkSXhLMmFHMzA2NzRsUy9Sd2J0YVNDTmUva0pIQ0NwbTJqOU5YZHgxeE12NXVlOUhnMzBWMGNyWmdOTUhSaTdyOGc9PQ }

Sau khi ứng dụng client có mã token này, nó có thể gửi mã token đó lên server mỗi khi truy cập vào API, thay vì phải gửi email hay mật khẩu.

Tạo Permissions và Validations Middleware

Đầu tiên, chúng ta cần xác định “ai” được phép sử dụng user resource thông qua API này. Đây là một user case mà chúng ta cần xử lý:

Người dùng chưa đăng ký: được phép sử dụng API tạo mới user

Người dùng/quản trị viên đã đăng nhập: được phép sử dụng API hiển thị danh sách user, update user.

Quản trị viên đã đăng nhập: được phép xóa user.

Sau khi xác định được các user case, bước tiếp theo là tạo middleware để luôn validate thông tin user nếu user này có một mã JWT hợp lệ.

Mở /common/middlewares/auth.validation.middleware.js

if (req.headers[‘authorization’]) { try { let authorization = req.headers[‘authorization’].split(‘ ‘); if (authorization[0] !== ‘Bearer’) { return res.status(401).send(); } else { chúng tôi = jwt.verify(authorization[1], secret); return next(); } } catch (err) { return res.status(403).send(); } } else { return res.status(401).send(); } };

Trong này, có các mã HTTP code để xử lý lỗi:

HTTP 401: cho invalid request

HTTP 403: cho một request hợp lệ nhưng token không hợp lệ. Hoặc token hợp lệ nhưng permision không đủ thẩm quyền truy cập vào API này.

Ví dụ một middleware cho phân quyền:

let user_permission_level = parseInt(req.jwt.permission_level); let user_id = req.jwt.user_id; if (user_permission_level & required_permission_level) { return next(); } else { return res.status(403).send(); } }; };

Công việc cuối cùng là thêm authentication middleware vào route

app.post('/users', [ UsersController.insert ]); app.get('/users', [ ValidationMiddleware.validJWTNeeded, PermissionMiddleware.minimumPermissionLevelRequired(PAID), UsersController.list ]); app.get('/users/:userId', [ ValidationMiddleware.validJWTNeeded, PermissionMiddleware.minimumPermissionLevelRequired(FREE), PermissionMiddleware.onlySameUserOrAdminCanDoThisAction, UsersController.getById ]); app.patch('/users/:userId', [ ValidationMiddleware.validJWTNeeded, PermissionMiddleware.minimumPermissionLevelRequired(FREE), PermissionMiddleware.onlySameUserOrAdminCanDoThisAction, UsersController.patchById ]); app.delete('/users/:userId', [ ValidationMiddleware.validJWTNeeded, PermissionMiddleware.minimumPermissionLevelRequired(ADMIN), UsersController.removeById ]);

Vậy là xong rồi đấy

Mẫu Giấy Đề Nghị Mua Điện Phục Vụ Mục Đích Sinh Hoạt / 2023

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

GIẤY ĐỀ NGHỊ MUA ĐIỆN

NGOÀI MỤC ĐÍCH SINH HOẠT

Kính gửi: ………………………………………………………………………………..

     Phần Bên mua điện ghi:

Tên Khách hàng đăng ký mua điện: ………………………………………………………………………………..

Địa chỉ hiện tại : Số nhà:……………………Tổ/thôn/ấp:………………………………………………………..

Xã/phường/thị trấn:…………………………Huyện/thị xã/TP/Quận……………………………………………..

Số điện thoại:………………………….;Số điện thoại đăng ký nhận tin nhắn (SMS):……………………………..;

Số Fax…………………………………………..Email………………………….…………………….…………(1)

Tài khoản số :…………………………Tại ngân hàng:…………………………………..…………..

Đề nghị mua điện 1 pha £ ; 3 pha  £  để sử dụng vào mục đích ngoài mục đích sinh hoạt.

Mục đích sử dụng điện:…………………..…………………………………………………………

Tỷ lệ điện năng sử dụng cho mục đích khác (nếu có):…………………………………………………….(2)

Công suất đăng ký sử dụng : ……………kW (kèm theo bảng kê thiết bị điện, chế độ và công suất sử dụng điện);

Địa chỉ nơi sử dụng điện: Số nhà, ngõ hẻm:…………………..Tổ/thôn/ấp:…………………………………

Xã/phường/thị trấn:…………………………..Huyện/thị xã/TP/Quận:…………………………………………..

Tình trạng sử dụng điện hiện tại: Chưa có điện    £ ; Đang dùng công tơ chung    £  

Hồ sơ kèm theo: ……………………………………………………………………………………………………….(3)

Thời gian Bên bán điện nhận đơn                          ………………., ngày……….tháng……….năm…………

   Ngày………tháng….…..năm……..                                                 Đại diện Bên mua điện (4)

   Người nhận đơn (ký, ghi rõ họ và tên)                                              (ký, ghi rõ họ và tên)

    Xác nhận của chính quyền địa phương

hoặc cơ quan quản lý của cấp có thẩm quyền

      

    

      Các điểm (1), (2), (3), (4) xem hướng dẫn ghi ở mặt sau của Giấy đề nghị này.

Phần Bên bán điện ghi: Bên Bán đánh dấu vào ô trống những giấy tờ có trong Hồ sơ:

£  Giấy đề nghị mua điện;                       £ Giấy chứng nhận quyền sở hữu nhà;   

£  Giấy phép đầu tư;                              £ Giấy chứng nhận đăng ký doanh nghiệp;

£  Quyết định thành lập đơn vị;              £ Giấy chứng nhận đăng ký hoạt động chi nhánh, văn phòng đại diện

£  Hợp đồng thuê nhà có xác nhận của cơ quan  có thẩm quyền;     

£  Giấy chứng nhận quyền sở hữu đất; 

£ Hợp đồng thuê quyền sử dụng đất có xác nhận của cơ quan có thẩm quyền

HƯỚNG DẪN

(1): Thông tin không bắt buộc phải ghi;

(2): Trường hợp mua điện phục vụ ngoài mục đích sinh hoạt là chính và có thêm mục đích sử dụng điện khác cần ghi rõ: Sản xuất gì ? kinh doanh dịch vụ gì ?.

(3) Hồ sơ mua điện kèm theo: Hai loại giấy tờ sau (bản sao có công chứng hoặc chứng thực):

            1. điểm mua điện: Giấy chứng nhận quyền sở hữu nhà; Giấy chứng nhận quyền sử dụng đất; Hợp đồng thuê nhà có xác nhận của cơ quan có thẩm quyền; Hợp đồng thuê quyền sử dụng đất có xác nhận của cơ quan có thẩm quyền. Trường hợp không có một trong các giấy tờ trên thì phải có Giấy xác nhận của chính quyền địa phương tại nơi đề nghị mua điện.

            2. Một trong các giấy chứng nhận đăng ký doanh nghiệp hoặc Giấy chứng nhận đăng ký hoạt động chi nhánh, văn phòng đại diện; Giấy phép đầu tư; Quyết định thành lập đơn vị. Trường hợp không có một trong các giấy tờ trên thì có Giấy xác nhận của cơ quan quản lý của cấp có thẩm quyền hay chính quyền địa phương tại nơi đề nghị mua điện.

(4) Trường hợp tổ chức đề nghị mua điện: Đại diện Bên mua điện ký tên và đóng dấu.

MỘT SỐ HƯỚNG DẪN SỬ DỤNG TIẾT KIỆM ĐIỆN

Tủ lạnh: Hạn chế việc mở tủ trừ trường hợp thật cần thiết vì bạn càng mở nhiều thì bạn càng phải trả tiền điện nhiều. Nhiệt độ bên trong tủ lạnh nên để ở chế độ từ 3 – 6­­­­ độ C, còn đối với chế độ đông độ C. Cứ lạnh hơn 10 độ C là thêm 25% điện năng tiêu hao. Chú ý kiểm tra gioăng cao su, nếu bị hở thì bộ phận nén khí của tủ lạnh sẽ phải làm việc nhiều. Máy điều hoà nhiệt độ: Hãy để nhiệt độ mức trên 25 độ C. Cứ cao hơn 10 độ C là bạn đã tiết kiệm được 10% điện năng, thường xuyên lau chùi bộ phận lọc thì sẽ tiết kiệm được từ 5 – 7% điện năng. Không nên đặt máy ở gần tường, như vậy sẽ tiêu phí từ 20 – 25% điện năng. Nếu bạn vắng nhà trong khoảng 1h đồng hồ thì tốt nhất là nên tắt máy điều hòa đi. Quạt: Không nên để quạt chạy ở tốc độ quá cao, như vậy sẽ rất tốn điện. Nhớ rút phích cắm điều khiển từ xa ở quạt sau mỗi lần sử dụng. Đặt quạt chạy ở chế độ vừa phải, cánh quạt càng quay nhanh bạn càng phải trả nhiều tiền điện. Máy tính: Nên tắt máy tính nếu như bạn không có ý định dùng trong vòng 15 phút. Hãy chọn chế độ tiết kiệm điện năng trong máy tính (ScreenSave) để vừa đỡ tốn điện vừa bảo vệ được máy. Chọn chế độ tiết kiệm điện sẽ giảm được khoảng 55% lượng điện năng tiêu thụ trong thời gian tạm dừng sử dụng máy (downtime). Bóng điện: Nên quét vôi hoặc lăn tường bằng màu sáng vì chỉ cần bật ít ðèn mà nhà vấn sáng do có sự phản xạ ánh sáng của tường nhà. Do đó bạn sẽ giảm được lượng bóng điện trong nhà. Mặt khác bạn nên dùng loại bóng có chức năng tiết kiệm điện năng như ðèn Compact, ðèn tuýp gầy. Bàn là: Không là quần áo còn ướt, không là quần áo trong phòng có bật máy điều hoà nhiệt độ. Lau sạch bề mặt kim loại của bàn là sẽ giúp bàn là hoạt động có hiệu quả hơn. Máy giặt: Chỉ sử dụng máy giặt khi có đủ lượng quần áo để giặt và dùng chế độ giặt nước nóng khi thật cần thiết. Lò vi sóng: Không bật lò vi sóng trong phòng có điều hoà nhiệt độ và không nên đặt gần các đồ điện khác, nếu đặt quá gần thì quá trình hoạt động của lò vi sóng sẽ ảnh hưởng đến chức năng hoạt động của các đồ điện này. Máy bơm: Khi dùng máy bơm nhớ vặn chặt các van nước bởi vì rò rỉ nước sẽ làm máy bơm hoạt động gây tốn điện không cần thiết. Các van ở đường ống nên thường xuyên bảo trì. Vô tuyến: Không nên để màn hình ở chế độ sáng quá vì như vậy sẽ rất tốn điện. Không nên tắt ti vi bằng điều khiển từ xa mà nên tắt bằng cách ấn nút ở máy. Không xem ti vi khi đang nối với đầu Video. Nên chọn kích cỡ ti vi phù hợp với diện tích nhà bạn vì ti vi càng to càng tốn điện.

Restful Api Cho Người Bắt Đầu / 2023

Nếu bạn tìm thấy bài viết này của tôi trên Google thì tôi đoán rằng bạn đã từng ít nhất một vài lần nghe về thuật ngữ RESTful API và đang không hiểu chính xác thuật ngữ này là gì. Và nếu giống như tôi thì có thể bạn đã phải bỏ ra vài giờ đồng hồ để đọc các giải thích trên mạng mà cuối cùng vẫn không hiểu tường tận về thuậ ngữ này. Nếu bạn đang trong trường hợp này thì hãy bỏ ra 10 phút để đọc bài viết này. Tôi sẽ trình bày theo cách thực tế, ngắn gọn và dễ hiểu nhất có thể để bạn nắm vẵng được khái niệm RESTful API để áp dụng trong việc tạo ứng dụng REST API dựa trên những hiểu biết có được.

Đầu tiên chúng ta cần tìm hiểu về khái niệm resource.

Resource

Quản lý resource (tài nguyên) là một phần quan trọng và chiếm phần lớn trong việc phát triển website. Trong đó resource của các website khác nhau có thể sẽ khác nhau. Với các trang mạng xã hội như Facebook thì resource thường là danh sách người dùng (user hoặc account), danh sách các bài viết (post hoặc article), các ảnh được đăng (photo hoặc image), các trang fanpage (fanpage)… Đối với một trang chia sẻ ảnh như Instagram thì resource có thể là các ảnh được đăng (photo), danh sách người dùng (user)… Đối với các trang bán hàng thì resource có thể là danh sách sản phẩm (product), danh sách các người bán (seller), danh sách khách hàng (user hay customer)…

Việc quản lý resource của một website bao gồm 4 tác vụ chính:

Tạo mới một resource (create)

Lấy thông tin một resource (read)

Cập nhật một resource (update)

Xoá một resource (delete)

Có rất nhiều cách khác nhau để xây dựng một trang web thực hiện 4 tác vụ trên. Ví dụ với một trang blog chạy dưới tên miền là http://my-blog.xyz thì để xem nội dung một bài viết ( post) với ID là 123 bạn có thể làm theo một trong các cách sau:

Gửi một request tới URL http://my-blog.xyz/posts?id=123 với HTTP method là GET

Gửi một request tới URL http://my-blog.xyz/posts/123 với HTTP method là GET

Gửi một request tới URL http://my-blog.xyz/action=view_post&id=123 với HTTP method là GET

Gửi một request tới URL http://my-blog.xyz/view_post&id=123 với HTTP method là GET

Gửi một request tới URL http://my-blog.xyz/posts?id=123 với HTTP method là POST

Gửi một request tới URL http://my-blog.xyz/posts/123 với HTTP method là POST

Và sau một thời gian dài thì người ta đã thống nhất ra các tiêu chuẩn khác nhau để thực hiện việc quản lý resource. Các tiêu chuẩn này (hay còn được gọi là Web API hoặc HTTP API) quy định một cách thống nhất việc quản lý các resource của web. Và RESTful là một trong các web API được sử dụng phổ biến ngày nay.

RESTful API Là Gì

RESTful API là một tiêu chuẩn dùng trong việc thết kế các thiết kế API cho các ứng dụng web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến nhất ngày nay.

Trọng tâm của REST quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource. Ví dụ với một trang blog để quản lý các bài viết chúng ta có các URL đi với HTTP method như sau:

URL tạo bài viết: http://my-blog.xyz/posts. Tương ứng với HTTP method là POST

URL đọc bài viết với ID là 123: http://my-blog.xyz/posts/123. Tương ứng với HTTP method là GET

URL cập nhật bài viết với ID là 123: http://my-blog.xyz/posts/123. Tương ứng với HTTP method là PUT

URL xoá bài viết với ID là 123: http://my-blog.xyz/posts/123. Tương ứng với HTTP method là DELETE

Với các ứng dụng web được thiết kế sử dụng RESTful, lập trình viên có thể dễ dàng biết được URL và HTTP method để quản lý một resource. Bạn cũng cần lưu ý bản thân RESTful không quy định logic code ứng dụng và RESTful cũng không giới hạn bởi ngôn ngữ lập trình ứng dụng. Bất kỳ ngôn ngữ lập trình (hoặc framework) nào cũng có thể áp dụng RESTful trong việc thiết kế API cho ứng dụng web.

REST và REST(ful)

Một vấn đề mà nhiều bạn mới tìm hiểu về RESTful cũng thường cảm thấy bối rối đó là REST và RESTful khác nhau như thế nào. REST là viết tắt của cụm từ Representational State Transfer và các ứng dụng sử dụng kiểu thiết kế REST thì được gọi là RESTful (-ful là tiếp vị ngữ giống như beauty và beautiful). Tất nhiên bạn cũng có thể sử dụng thuật ngữ REST thay cho RESTful và ngược lại.

Bạn đang xem bài viết Tạo 1 Rest Api Phục Vụ Cho Mục Đích Học Tập Trong 30 Giây / 2023 trên website Toiyeucogaihalan.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!