API REST trong NodeJS là gì?
API REST là một cách tiêu chuẩn ngành để các dịch vụ web gửi và nhận dữ liệu. Chúng sử dụng các phương thức yêu cầu HTTP để tạo thuận lợi cho chu trình phản hồi yêu cầu và thường truyền dữ liệu bằng JSON và hiếm hơn - HTML, XML và các định dạng khác Show
Để đơn giản, chúng tôi sẽ không sử dụng cơ sở dữ liệu, vì vậy bạn không cần có kinh nghiệm sử dụng cơ sở dữ liệu. Thay vào đó, chúng tôi sẽ sử dụng một mảng JavaScript đơn giản để lưu trữ dữ liệu của mình API REST là gì?REST (Chuyển giao trạng thái đại diện) là một kiến trúc tiêu chuẩn để xây dựng và giao tiếp với các dịch vụ web. Nó thường bắt buộc các tài nguyên trên web được thể hiện ở định dạng văn bản (như JSON, HTML hoặc XML) và có thể được truy cập hoặc sửa đổi bằng một tập hợp các hoạt động được xác định trước. Cho rằng chúng tôi thường xây dựng các API REST để tận dụng HTTP thay vì các giao thức khác, các hoạt động này tương ứng với các phương thức HTTP như GET, POST hoặc PUT Trên một tập hợp dữ liệu, chẳng hạn như sách, có một vài hành động chúng ta sẽ cần thực hiện thường xuyên, đó là - Tạo, Đọc, Cập nhật và Xóa (còn được gọi là Chức năng CRUD) API (Giao diện lập trình ứng dụng), như tên cho thấy, là một giao diện xác định sự tương tác giữa các thành phần phần mềm khác nhau. API Web xác định những yêu cầu nào có thể được thực hiện đối với một thành phần (ví dụ: điểm cuối để nhận danh sách sách), cách thực hiện chúng (ví dụ: yêu cầu GET) và phản hồi dự kiến của chúng Express là gì?ExpressJS là một trong những thư viện máy chủ HTTP phổ biến nhất cho Node. js, theo mặc định không thân thiện với việc phát triển API. Sử dụng Express, chúng tôi đơn giản hóa quá trình phát triển API bằng cách trừu tượng hóa bản soạn sẵn cần thiết để thiết lập máy chủ, giúp quá trình phát triển nhanh hơn, dễ đọc hơn và đơn giản hơn. Bạn có thể tạo API nguyên mẫu trong vài giây và một vài dòng mã Mặc dù mục đích sử dụng chính của nó là để đơn giản hóa mọi thứ với các giá trị mặc định hợp lý, nhưng nó có khả năng tùy biến cao bằng cách sử dụng các chức năng được gọi là "phần mềm trung gian" Ghi chú. Express rất nhẹ và được xây dựng trên phần mềm trung gian. Sử dụng phần mềm trung gian, bạn có thể mở rộng và mở rộng chức năng của nó ngoài các chức năng đã có theo mặc định Mặc dù chúng tôi sẽ chỉ xây dựng API REST trong hướng dẫn này, nhưng khung ExpressJS không chỉ giới hạn ở điều đó - lưu trữ các tệp tĩnh, thực hiện kết xuất phía máy chủ hoặc thậm chí sử dụng nó làm máy chủ proxy không phải là hiếm và bầu trời Các loại yêu cầu HTTPCó một số loại HTTP method mà chúng ta cần nắm trước khi xây dựng một REST API. Đây là các phương thức tương ứng với các tác vụ CRUD
Ghi chú. Lưu ý rằng bạn có thể sử dụng 9 hoặc 1 để chỉnh sửa dữ liệu được lưu trữ. Bạn có thể tự do lựa chọn xem mình có muốn sử dụng 1 hay không vì nó có thể được bỏ qua hoàn toàn. Mặc dù vậy, hãy nhất quán với các động từ HTTP bạn sử dụng. Nếu bạn đang sử dụng 9 để tạo và cập nhật, thì hoàn toàn không sử dụng phương pháp 1Những gì chúng ta sẽ xây dựngHãy tạo một ứng dụng đơn giản để lưu trữ thông tin về sách. Trong ứng dụng này, chúng tôi sẽ lưu trữ thông tin về ISBN của cuốn sách, tiêu đề, tác giả, ngày xuất bản, nhà xuất bản và số trang Đương nhiên, chức năng cơ bản của API sẽ là chức năng CRUD. Chúng tôi muốn có thể gửi yêu cầu tới nó để tạo, đọc, cập nhật và xóa các thực thể 8. Tất nhiên, một API có thể làm được nhiều hơn thế - cung cấp cho người dùng điểm cuối để nhận dữ liệu thống kê, tóm tắt, gọi các API khác, v.v.Các chức năng không phải CRUD phụ thuộc vào ứng dụng và dựa trên bản chất dự án của bạn, có thể bạn sẽ có các điểm cuối khác. Tuy nhiên, thực tế không có dự án nào có thể hoạt động mà không có CRUD Để tránh tạo dữ liệu sách - hãy sử dụng tập dữ liệu từ GitHub để lấy một số chi tiết mẫu về sách Thiết lập dự ánĐầu tiên, hãy khởi tạo một Node mới. dự án js 0Điền thông tin được yêu cầu theo yêu cầu của bạn - bạn không cần phải điền vào tất cả các trường, nhưng chúng là một cách dễ dàng để thiết lập dữ liệu có thể nhận dạng cho một dự án. Các trường như 9 phù hợp hơn nhiều để xuất bản ứng dụng lên Trình quản lý gói nút, trong số các trường khácNgoài ra, bạn có thể sử dụng cài đặt mặc định bằng cách thêm cờ 20 vào cuộc gọi
Dù bằng cách nào - bạn sẽ kết thúc với một dự án có tệp 21. Đây là tệp 22 chứa tất cả siêu dữ liệu có liên quan về dự án của bạn và sẽ trông giống như những dòng này theo mặc định
"Mục nhập"/"chính" của ứng dụng của bạn là tệp chạy để bắt đầu dự án một cách chính xác - thường là tập lệnh chính của bạn và theo mặc định là 23Ngoài ra, phiên bản ứng dụng và "tập lệnh" của bạn ở đây. Bạn có thể cung cấp bất kỳ số lượng lệnh tùy chỉnh nào trong phần 24, với lệnh được liên kết với bí danh. Ở đây, bí danh 25 là một trình bao bọc cho câu lệnh 26Bạn sẽ chạy thử nghiệm ứng dụng qua 2Thông thường, có một bí danh 27 che giấu một hoặc nhiều quy trình sẽ được chạy khi chúng tôi muốn khởi động một ứng dụng. Ở dạng cơ bản - chúng tôi chỉ chạy trang chỉ mục với nút 3Bạn có thể đặt bất kỳ số lượng lệnh nào ngoài 28 làm tập lệnh 27 và khi bạn chạy 30 - tất cả chúng sẽ chạy 7Ghi chú. Vì chúng tôi chỉ có một lệnh trong tập lệnh bắt đầu, nên về mặt chức năng, nó tương đương với việc chỉ gọi 31 trong dòng lệnh để khởi động ứng dụngBây giờ bạn đã quen thuộc với dự án, hãy cài đặt Express 9Một tệp mới được tạo trong thư mục, cùng với thư mục 32. Tệp 33 theo dõi các phụ thuộc của bạn và chứa các phiên bản và tên của chúng 2Thư mục 32 thực sự lưu trữ mã của các phần phụ thuộc và có thể trở nên khá lớn rất nhanh. Chỉ bằng cách cài đặt Express, chúng tôi đã có một số lượng lớn mô-đun được cài đặt và theo dõi trong tệp 33Trên thực tế, các mô-đun này nhỏ nên nó không phải là vấn đề. Bằng cách sử dụng tệp 33, một khách hàng khác không thể biết phần phụ thuộc nào cần tải xuống và phiên bản nào sẽ sử dụng để có thể khởi động ứng dụng của bạn một cách chính xácGhi chú. Khi thực hiện kiểm soát phiên bản bằng các công cụ như Git - tốt nhất là không nên phiên bản mã nguồn của các mô-đun bạn sử dụng trong ứng dụng. Về mặt thực tế - không theo dõi hoặc đẩy 32 vào kho lưu trữ. Những người khác có thể tải xuống các phụ thuộc dựa trên 33 quan trọng, điều này sẽ tự động xảy ra khi họ chạy ứng dụng với 39Tạo một điểm cuối đơn giảnBây giờ, hãy bắt đầu xây dựng một ứng dụng "Xin chào thế giới" đơn giản. Nó sẽ có một điểm cuối đơn giản duy nhất chỉ trả về một thông báo dưới dạng phản hồi cho yêu cầu lấy trang chủ của chúng tôi Trước tiên, hãy tạo một tệp có tên 70 0Sau đó, hãy nhập khung Express bên trong nó 1Tiếp theo, chúng tôi sẽ muốn khởi tạo ứng dụng Express 0Và đặt cổng của chúng tôi 1Cổng sẽ được sử dụng sau một chút, khi chúng tôi yêu cầu ứng dụng lắng nghe yêu cầu. Ba dòng này là bản soạn sẵn - nhưng điều tuyệt vời là, đó là tất cả những bản soạn sẵn có Bây giờ, chúng ta có thể tạo một điểm cuối 0 đơn giản ngay bên dưới bản soạn sẵn. Khi người dùng truy cập điểm cuối bằng yêu cầu GET, thông báo "Xin chào thế giới, từ tốc hành" sẽ được trả về (và được hiển thị trong trình duyệt hoặc hiển thị trên bảng điều khiển)Chúng tôi muốn đặt nó ở trên trang chủ, vì vậy URL cho điểm cuối là 72 2Tại thời điểm này, hãy bắt đầu khách hàng của chúng tôi 3Hãy chạy ứng dụng và truy cập điểm cuối duy nhất chúng tôi có thông qua trình duyệt của mình 4Về mặt kỹ thuật, đây là một API đang hoạt động. Mặc dù vậy, điểm cuối này không thực sự làm được gì nhiều. Chúng ta hãy xem một số phần mềm trung gian phổ biến sẽ hữu ích cho công việc tiếp theo và tạo một số điểm cuối hữu ích hơn Phần mềm trung gian nhanhNhư đã đề cập ở trên - ExpressJS là một máy chủ HTTP đơn giản và nó không đi kèm với nhiều tính năng vượt trội. Phần mềm trung gian hoạt động gần giống như phần mở rộng cho máy chủ Express và cung cấp các chức năng bổ sung ở "phần giữa" của yêu cầu. Nhiều tiện ích mở rộng của bên thứ ba như morgan để ghi nhật ký, multer để xử lý tệp tải lên, được sử dụng thường xuyên Hiện tại, để bắt đầu, chúng ta cần cài đặt một phần mềm trung gian có tên là body-parser, phần mềm này giúp chúng ta giải mã phần thân từ một yêu cầu HTTP 5Nó phân tích cú pháp phần thân của yêu cầu và cho phép chúng tôi phản ứng với yêu cầu đó một cách phù hợp Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó Vì chúng tôi đang gọi API từ các vị trí khác nhau bằng cách nhấn vào các điểm cuối trong trình duyệt. Chúng tôi cũng phải cài đặt phần mềm trung gian CORS Nếu bạn chưa quen với việc chia sẻ tài nguyên trên nhiều nguồn gốc, thì bây giờ bạn có thể. Hãy cài đặt phần mềm trung gian và cấu hình nó 6Xây dựng API REST với Node và Expressthêm sáchBây giờ chúng ta có thể bắt đầu xây dựng ứng dụng của mình. Tạo một tệp mới có tên là 73Như bạn có thể thấy, chúng ta có thể định cấu hình 74 bằng cách nhập nó và chuyển nó sang phương thức 75, cho phép nó làm phần mềm trung gian cho phiên bản Express 76Chúng tôi sẽ sử dụng mảng 77 để lưu trữ bộ sưu tập sách của chúng tôi, mô phỏng cơ sở dữ liệuCó một số loại nội dung yêu cầu HTTP. Ví dụ: 78 là loại nội dung mặc định cho các biểu mẫu, trong khi đó, 79 là thứ chúng tôi sẽ sử dụng khi yêu cầu tài nguyên bằng jQuery hoặc máy khách REST phụ trợĐiều mà phần mềm trung gian 74 sẽ làm là lấy phần thân HTTP, giải mã thông tin và nối nó vào 91. Từ đó, chúng tôi có thể dễ dàng truy xuất thông tin từ biểu mẫu - trong trường hợp của chúng tôi là thông tin của một cuốn sáchBên trong phương thức 92, hãy thêm sách vào mảng sáchBây giờ, hãy tạo một biểu mẫu HTML đơn giản với các trường. ISBN, tiêu đề, tác giả, ngày xuất bản, nhà xuất bản và số trang trong một tệp mới, chẳng hạn như 93Chúng tôi sẽ gửi dữ liệu tới API bằng thuộc tính 94 của biểu mẫu HTML nàyỞ đây, của chúng tôi thuộc tính của thẻ tương ứng với điểm cuối của chúng tôi và thông tin chúng tôi gửi bằng nút 95 là thông tin mà phương thức của chúng tôi phân tích cú pháp và thêm vào mảng. Lưu ý rằng tham số 96 là 9, giống như trong API của chúng tôiBạn sẽ thấy một cái gì đó như thế khi bạn mở trang Nhấp vào "Gửi", chúng tôi được chào đón với tuyên bố 98 về ứng dụng của chúng tôi 7Ghi chú. Xin lưu ý rằng vì chúng tôi đang sử dụng một mảng để lưu trữ dữ liệu nên chúng tôi sẽ mất chúng trong lần khởi động lại ứng dụng tiếp theo Nhận tất cả sáchBây giờ, hãy tạo một điểm cuối để lấy tất cả sách từ API 8Khởi động lại máy chủ. Nếu máy chủ đang chạy, nhấn 99 để dừng nó trước. Thêm một số sách và mở 20 trong trình duyệt của bạn. Bạn sẽ thấy phản hồi JSON với tất cả sách mà bạn đã thêmBây giờ, hãy tạo một trang HTML để hiển thị những cuốn sách này theo cách thân thiện với người dùng Khoảng thời gian này, chúng tôi sẽ tạo hai tệp - 21 mà chúng tôi sẽ sử dụng làm mẫu và tệp 22 sẽ giữ logic để cập nhật/xóa sách và hiển thị chúng trên trangHãy bắt đầu với mẫu Với mẫu đã hoàn thành, chúng tôi có thể triển khai logic thực tế để truy xuất tất cả sách bằng cách sử dụng JavaScript phía trình duyệt và API REST của chúng tôi Trong đoạn script trên, chúng tôi đang gửi yêu cầu 0 đến điểm cuối 20 để truy xuất sách và sau đó tạo thẻ Bootstrap cho mỗi cuốn sách để hiển thị sách. Nếu mọi thứ hoạt động bình thường, bạn sẽ thấy nội dung như thế này trên trang của mìnhBạn có thể nhận thấy các nút Chỉnh sửa và Tạo và các phương thức tương ứng của chúng. Bây giờ, hãy để chúng trống và triển khai chúng khi chúng ta bắt đầu Truy xuất Sách theo ISBNNếu chúng tôi muốn hiển thị một cuốn sách cụ thể cho người dùng, chúng tôi sẽ cần một cách để truy xuất nó từ cơ sở dữ liệu (hoặc mảng, trong trường hợp của chúng tôi). Điều này luôn được thực hiện bởi một khóa cụ thể cho thực thể đó. Trong hầu hết các trường hợp, mỗi thực thể có một 25 duy nhất giúp chúng tôi xác định chúngTrong trường hợp của chúng tôi, mỗi cuốn sách có một ISBN về bản chất là duy nhất, vì vậy không cần giá trị 25 khácĐiều này thường được thực hiện bằng cách phân tích cú pháp tham số URL cho một 25 và tìm kiếm cuốn sách có 25 tương ứngVí dụ: nếu ISBN là 29 thì URL sẽ có dạng như sau, 00Ở đây, chúng tôi được giới thiệu về các URL được tham số hóa. Vì ISBN phụ thuộc vào sách nên có thể có vô số điểm cuối ở đây. Bằng cách thêm dấu hai chấm ( 01) vào đường dẫn, chúng ta có thể xác định một biến, được ánh xạ tới biến 02. Vì vậy, nếu người dùng truy cập 03 thì tham số 02 sẽ là 05Bạn có thể chấp nhận nhiều tham số trong URL của mình nếu điều đó hợp lý trong trường hợp của bạn. Ví dụ: 06, sau đó bạn có thể lấy các tham số đó bằng cách sử dụng 07 và 08Bây giờ, sử dụng điểm cuối của chúng tôi, chúng tôi có thể truy xuất một cuốn sách Khởi động lại máy chủ, thêm một cuốn sách mới và mở 09 và ứng dụng sẽ trả về thông tin của cuốn sáchXóa sáchKhi xóa các thực thể, chúng tôi thường xóa từng mục một để tránh mất dữ liệu lớn do vô tình. Để xóa các mục, chúng tôi sử dụng phương thức HTTP 2 và chỉ định sách bằng số ISBN của sách, giống như cách chúng tôi truy xuất sáchChúng tôi đang sử dụng phương pháp 11 để chấp nhận các yêu cầu của 2. Chúng tôi cũng đã sử dụng phương pháp mảng 13 để lọc sách có ISBN liên quan để xóa sách khỏi mảngBây giờ hãy triển khai phương thức 14 trong tệp 22Trong phương pháp này, chúng tôi đang gửi yêu cầu xóa khi nhấn nút và tải lại trang để hiển thị các thay đổi chỉnh sửa sáchRất giống với việc xóa các thực thể, việc cập nhật chúng yêu cầu chúng tôi lấy một thực thể cụ thể, dựa trên ISBN và sau đó gửi lệnh gọi HTTP 9 hoặc 1 với thông tin mớiHãy quay lại tệp 73 của chúng tôiKhi gửi yêu cầu 9, nhằm vào một ISBN cụ thể, cuốn sách đầy đủ được cập nhật với thông tin mớiVì chúng tôi đã tạo phương thức chỉnh sửa, chúng tôi có thể sử dụng phương thức 00 để thu thập thông tin về cuốn sách khi nhấp vào nút "Chỉnh sửa"Chúng tôi cũng sẽ đặt tham số 94 của biểu mẫu với URL của cuốn sách được nhấp để gửi yêu cầuĐể xác minh xem chức năng cập nhật có hoạt động hay không, hãy chỉnh sửa sách. Biểu mẫu phải được điền thông tin hiện có về cuốn sách. Thay đổi điều gì đó và nhấp vào "Gửi", sau đó bạn sẽ thấy thông báo "Sách đã được chỉnh sửa" Phần kết luậnĐó là cách dễ dàng để xây dựng API REST bằng Node. js và Express. Bạn có thể truy cập tài liệu Express chính thức để tìm hiểu thêm về khung nếu bạn quan tâm Ngoài ra, mã mà tôi đã cung cấp chỉ nhằm mục đích hướng dẫn, bạn không bao giờ nên sử dụng nó trong môi trường sản xuất. Đảm bảo bạn xác thực dữ liệu và tuân theo các phương pháp hay nhất khi viết mã cho sản xuất API REST được sử dụng để làm gì?RESTful API là giao diện mà hai hệ thống máy tính sử dụng để trao đổi thông tin một cách an toàn qua internet . Hầu hết các ứng dụng kinh doanh phải giao tiếp với các ứng dụng nội bộ và bên thứ ba khác để thực hiện các tác vụ khác nhau.
Tại sao nên sử dụng Node JS cho API REST?js là nhẹ, nhanh và có thể mở rộng . Nút. js cho phép bạn xây dựng Proxy API nhanh, có thể mở rộng, có khả năng xử lý một số lượng lớn yêu cầu đồng thời với thông lượng cao.
Ví dụ về API REST là gì?Ví dụ: API REST sẽ sử dụng yêu cầu GET để truy xuất bản ghi, yêu cầu POST để tạo một bản ghi, yêu cầu PUT để cập nhật bản ghi và yêu cầu XÓA để . Tất cả các phương thức HTTP có thể được sử dụng trong lệnh gọi API. API REST được thiết kế tốt tương tự như một trang web chạy trong trình duyệt web có chức năng HTTP tích hợp. . All HTTP methods can be used in API calls. A well-designed REST API is similar to a website running in a web browser with built-in HTTP functionality.
Làm cách nào để tạo API REST trong nodejs?Hãy làm theo các bước dưới đây để xây dựng API REST Node js an toàn. . Bước 1. Tạo các thư mục cần thiết Bước 2. Tạo API Express ứng dụng đầu tiên của bạn Bước 3. Tạo mô-đun người dùng Bước 4. Tạo mô-đun xác thực |