Trang Chủ

Thiết Kế RESTful API + Gọi API Bằng HttpClient Trong ASP.NET

Giới Thiệu

RESTful API là một tiêu chuẩn được sử dụng trong việc thiết kế API cho các phần mềm, ứng dụng và dịch vụ web để tạo sự thuận tiện cho việc quản lý các resource. Các tài nguyên hệ thống như tệp văn bản, ảnh, video, âm thanh hay dữ liệu di động là mục tiêu mà nó hướng tới, bao gồm các trạng thái tài nguyên được định dạng và truyền tải qua HTTP.

I/ Tổng quan về Restful API

1. Các dạng Request của Restful API

Http Method gồm có 9 loại nhưng RESTful chỉ sử dụng 4 loại phổ biến

2. Nguyên tắc thiết kế Restful

Khi chúng ta gửi 1 request tới 1 API nào đó thì sẽ có vài status code để nhận biết như sau:

  • 200 OK – Trả về thành công cho tất cả phương thức
  • 201 Created – Trả về khi một Resource được tạo thành công.
  • 204 No Content – Trả về khi Resource xoá thành công.
  • 304 Not Modified – Client có thể sử dụng dữ liệu cache.
  • 400 Bad Request – Request không hợp lệ
  • 401 Unauthorized – Request cần có auth.
  • 403 Forbidden – bị từ chối không cho phép.
  • 404 Not Found – Không tìm thấy resource từ URL.
  • 405 Method Not Allowed – Phương thức không cho phép với user hiện tại.
  • 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ.
  • 415 Unsupported Media Type – Không hỗ trợ kiểu Resource này.
  • 422 Unprocessable Entity – Dữ liệu không được xác thực.
  • 429 Too Many Requests – Request bị từ chối do bị giới hạn.

3. Ưu điểm

II/ DEMO Thiết kế Restful API đơn giản

Mình sẽ tạo 1 project Web API và Demo thử cách mà Restful được gọi tới

Ý tưởng là mình sẽ tạo 1 class Model để xử lý trong phần API rồi được Controller gọi lên để hiển thị ra View (nếu bạn nào còn mập mờ về phần này thì mọi người nên xem trước mô hình MVC nha)


1. Phần SETUP

Mình sẽ tạo ra class gọi là Users ở trong Folder Model để sử dụng suốt quá trình test API nhé!!

Tạo phần Controller của WebAPI

 

2. Phần tạo API

2.1. GET METHOD

2.2 POST METHOD

Ở các phần Post, Put và Delete về sau sẽ phải dùng 1 công cụ hỗ trợ để gửi request mới có thể xác định được dữ liệu thu được là gì, vì request gửi đi sẽ ở dạng gửi ngầm không thể nhìn thấy.

Để có thể tùy chỉnh chỉ nhận Request gửi đi ở Url hay chỉ ở Body chúng ta có thể sửa đổi tham số của hàm. Ví dụ:

  • public HttpResponseMessage CreateNew([FromBody] Users u) // Nhận tham số ở phía Body gửi lên.
  • public HttpResponseMessage CreateNew([FromUrl] Users u) // Nhận tham số ở phía Url

2.3. PUT METHOD

Tương tự như Post, chúng ta sẽ thêm 1 hàm để Update thông tin user

2.3. DELETE METHOD

3. Gọi API Lên Controller

Vậy là phần dữ liệu thô Json đã được chuyển thành List User và hiển thị ra giao diện như chúng ta đang mong muốn.

  • Phần Post, Put, Delete cũng sẽ thực hiện tương tự như thế, chỉ thay đổi ở cú pháp sử dụng của HttpClient hoặc có thể tạo riêng ra một static class chỉ dùng để gửi Request và trả về dữ liệu để kiểm tra.
  • Có thể tham khảo thêm cách gửi các request trong HttpClient tại https://www.c-sharpcorner.com/article/calling-web-api-using-httpclient/

Chắc đọc đến đây mọi người thiết nghĩ là đã xong rồi đúng không

  • NHƯNG MÀ có 1 vấn đề phát sinh là chã lẽ ai cũng có thể gọi API khơi khơi như vậy
  • KHÔNG, Ở ĐÂY CHÚNG TÔI KHÔNG LÀM THẾ :v
  • Cách khắc phục ở đây là sẽ sử dụng Authorize để phân quyền sử dụng API (có thể sử dụng JWT) => Có lẽ trong bài viết sau mình sẽ làm tiếp về series này nhưng là về phần security và ràng buộc dữ liệu, mọi người nhớ đón xem nhé !!

III/ Kết Bài

Tài liệu tham khảo

Chia sẻ bài viết ngay