Cách Viết Api

Cách Viết Api

Có thể nói nguyên lí REST và cấu trúc dữ liệu RESTful được biết đến rộng rãi trong giới lập trình web nói chung và lập trình ứng dụng nói riêng.

Có thể nói nguyên lí REST và cấu trúc dữ liệu RESTful được biết đến rộng rãi trong giới lập trình web nói chung và lập trình ứng dụng nói riêng.

Cách sử dụng API công cụ chọn màu Iro.js

Iro.js là một API đơn giản cho phép thêm công cụ chọn màu miễn phí vào trang web. Khi bạn chọn một điểm màu trên bánh xe màu, API trả về mã thập lục phân hoặc mã RGB của màu đó. Để kết nối với API iro.js, tất cả những gì bạn cần làm là dán điểm cuối của mạng phân phối nội dung (content delivery network, hay CDN) vào phần head của DOM của bạn.

Tài liệu đầy đủ của API này có tại iro.js.org. Hãy xem cách bạn có thể kết nối với API này bằng đoạn code mẫu bên dưới:

Trong trường hợp của API mẫu ở trên, bạn không cần khóa API (API key) để kết nối với nó. Tuy nhiên, để hiểu rõ hơn, hãy xem kỹ JavaScript. Để kết nối với API này, chúng ta chỉ cần gọi hàm ColorPicker từ lớp iro, sau đó chuyển id của vùng chứa bánh xe màu vào lớp.

Điểm cuối của API iro.js rất dễ kết nối vì các nhà phát triển của nó đã thực hiện thêm công việc code lớp cho người dùng. Hình ảnh dưới đây là kết quả của đoạn code ở trên.

Để xem việc thay đổi màu sắc xảy ra như thế nào, bạn có thể mở một tệp HTML khác và dán đoạn code sau vào phần script của nó :

Đoạn code trên ghi lại các giá trị màu thập lục phân mỗi khi bạn thay đổi vị trí chọn màu trên bánh xe.

Tools cần được sử dụng bên trong Test API

Vì bản chất của test API là đã đụng chạm đến source code nên các tool được sử dụng cho source có thể được sử dụng trong test API như: Postman, soapui, rungscope, curl, ctesk…

Những lưu ý cần quan tâm khi thực hiện Test API

Quy trình test API cần được thực hiện theo quy trình và đầy đủ các bước sau:

Cách sử dụng API trao đổi tiền tệ NoCodeAPI

NoCodeAPI cung cấp nhiều API bao gồm cả API chuyển đổi tiền tệ. Để kết nối với điểm cuối trao đổi tiền tệ của nó, hãy truy cập thị trường NoCodeAPI và tạo một tài khoản.

Khi bạn đăng nhập, có một thanh tìm kiếm ở phần trên của trang. Trong thanh tìm kiếm đó, nhập currency exchange (trao đổi tiền tệ), khi truy vấn của bạn xuất hiện, hãy nhấp vào Activate (Kích hoạt).

Trên trang tiếp theo, nhấp vào Make Currency Exchange API (Tạo API trao đổi tiền tệ). Tiếp theo, nhập tên ưu tiên cho API và nhấp vào Create (Tạo).

Khi đã tạo xong API, hãy nhấp vào View Documentation (Xem tài liệu). Tiếp theo, chọn một ngôn ngữ ưa thích để xem code kết nối với điểm cuối của API. Sau đó, bạn có thể sao chép code mẫu đó và dán vào ứng dụng của mình để tùy chỉnh thêm.

Hãy xem code ví dụ bên dưới để chuyển đổi tiền tệ:

Đoạn code trên chỉ là phiên bản sửa đổi của đoạn code trong tài liệu. Tuy nhiên, hãy chú ý đến các tham số chuyển đổi trong biến phản hồi của JavaScript.

Đây là kết quả đầu ra JSON thô:

Sử dụng API cho ứng dụng cho phép bạn hoàn thành các dự án nhanh hơn. Mặc dù một số tài liệu API có thể mang tính kỹ thuật, nhưng cũng có rất nhiều tài liệu hữu ích cho người mới.

Tuy nhiên, như đã nói, để tận dụng tối đa bất kỳ API nào, bạn phải nghiên cứu kỹ tài liệu của nó và tuân thủ các quy tắc kết nối với nó.

Mặc dù chúng tôi đã sử dụng JavaScript cho các ví dụ ở đây, hầu hết API vẫn hỗ trợ các ngôn ngữ lập trình khác. Bạn có thể xem thông tin về hỗ trợ ngôn ngữ từ tài liệu của bất kỳ API nào.

API là gì? API mở đang thay đổi Internet như thế nào?

Bảo mật API là gì? Bảo mật API hoạt động như thế nào?

7 phương pháp hay nhất để bảo mật REST API: Xác thực và ủy quyền

Cách sử dụng Postman để kiểm tra API

8 phương pháp hay nhất để thiết kế REST API

Dịch từ: https://www.makeuseof.com/how-apis-work-and-how-to-use-them/

API Testing đã trở thành một phần không thể thiếu trong quá trình phát triển và kiểm thử phần mềm. Với sự gia tăng của các dịch vụ và kiến trúc dựa trên đám mây, API đã trở thành xương sống của các ứng dụng hiện đại, điều quan trọng đối với các doanh nghiệp tổ chức là đảm bảo Test API hoạt động chính xác.

API được biết đến là Application Program Interface hay còn là một loại kiểm thử phần mềm mà nội dung test là các giao diện lập trình ứng dụng. Bên cạnh đó nội dung kiểm thử còn bao gồm chức năng, hiệu suất và độ bảo mật của phần mềm dựa trên các bài test tích hợp. Chủ yếu khu vực kiểm thử nằm ở phần trung gian giữa Client và Server

Trong Test API, các phép thử sẽ thực hiện giao thức để Client và Server giao tiếp với nhau. Giao thức chủ yếu để chúng có thể giao tiếp là HTTP. API chủ yếu được xây dựng dựa trên 2 thành phần là: Yêu cầu (request) và phản hồi (respond)

Thông thường có 4 loại Request chính đó là:

Các yêu cầu đầu vào phải được API thông qua, sau đó chỉ thỉ được gửi đến server để thực thi. Hiện nay thông thường các bài Test API thường chỉ tập trung vào business logic mà ít tập trung vào giao diện phần mềm

Như đã nói ở trên để thực hiện bài test API, cần tích hợp nhiều bài test dưới đây là các loại test và cách thực hiện bên trong API:

Ở bài kiểm thử này, API tập trung vào điều kiện Method check: Các data đầu vào đúng sẽ được chấp nhận (Accept) và từ chối (Reject) với data sai. Đây là các trường hợp diễn ra bên trong Syntax test:

Tóm lại: Cũng giống như các trường hợp Validate dữ liệu mà các tester vẫn thực hiện hàng ngày

Để đảm bảo Method bên trong API thực hiện đúng chức năng của mình thì bắt buộc gần như phải sử dụng Functional test. Trong đó Kiểm thử viên sẽ phải thực hiện đầy đủ cả 8 kỹ thuật bên trong Testing Functional để có thể chắc chắn từng chức năng nhỏ nhất hoạt động theo đúng ý muốn.

Có thể bạn quan tâm: Functional testing là gì? Functional và Non Functional testing khác nhau ở đâu?

Một số ví dụ về tác dụng của kiểm thử chức năng ở bên trong các bài test api:

Kịch bản kiểm thử là các bước hay kỹ thuật để xác định tính năng của ứng dụng. Thông thường test scenarios bên trong test API là tập hợp nhiều Test Case và Test Suite.

Vì hiện nay đa phần các bài test API đều tập trung vào business logic mà ít tập trung vào giao diện nên bên trong Scenariors sẽ gần như không có User Interface Test.

Các test case bên trong cho kiểm thử API dựa trên:

Authentication và dữ liệu trả về

RESTful API không sử dụng session và cookie, nó sử dụng một access_token với mỗi request. Dữ liệu trả về thường có cấu trúc như sau:

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

Luôn sử dụng version để khi bạn cần nâng cấp API mà vẫn hỗ trợ các API cũ.

Lấy việc xây dựng api trên Laravel để làm ví dụ, trước khi đi vào ta tổng quan về Http Request.

HTTP request có tất cả 9 loại method , 2 loại được sử dụng phổ biến nhất là GET và POST

Viết Api thì sẽ khai báo router vào file routes/api.php thay vì sử dụng file routes/web.php. Các setting mặc cho file api.php trong laravel:

Có thể tùy chỉnh giá trị mặc định này trong method mapApiRoutes trong file app/Providers/RouteServiceProvider.php

Tạo các route để thực hiện các thao tác như CRUD (Create, Read, Update, Delete):

Mặc định route đã được gán middleware bindings, nếu muốn sử dụng model binding trong controller thì chúng ta sửa lại tham số trong route như sau:

Ngoài ra trong laravel cũng hỗ trợ chúng ta 1 cách khai báo ngắn gọn hơn:

Tương ứng với các Route RESTful đã khai báo ở trên, đặc biệt nếu dùng method apiResource thì laravel cũng hỗ trợ các method xử lí tương ứng trong controller.

Để tạo ra Resource Controllers chúng ta chạy lệnh sau

php artisan make:controller Api/ProductController -api

Ngoài ra nếu muốn sử dụng model binding khi tạo Resource Controllers thì dùng lệnh bên dưới

php artisan make:controller Api/ProductController --api --model=Models/Product

File ProductController tạo ra sẽ như sau, chúng ta để ý tham số của các method show, update, destroy sẽ thay đổi 1 chút.

Demo 1 đoạn code đơn giản trong controller kết hợp với model binding và route apiResource khi xây dựng API:

Mặc định khi sử dụng route apiResource thì dữ liệu trả về sẽ tự động được chuyển sang kiểu JSON và sẽ có status tương ứng nên chỉ cần return dữ liệu ra là được.

Còn nếu muốn tùy biến status trả về thì có thể tham khảo cách phía dưới có sử dụng class IlluminateHttpResponse để lấy status thay vì fix giá trị vào ví dụ như HTTP_OK tương ứng sẽ là 200

Khi xây dựng API, bạn có thể cần transform dữ liệu từ controller trước khi trả về cho người dùng ứng dụng của bạn, laravel cũng đã hỗ trợ điều này với Eloquent Resources

Để tạo ra 1 class chuyển đổi chúng ta chạy lệnh sau

php artisan make:resource Product

File app/Http/Resources/Product.php sẽ có nội dung như sau

Mình sẽ tùy chỉnh dữ liệu trả về là chỉ có title và price

Ở controller thì mình sẽ sửa lại như sau

Ngoài giới hạn dữ liệu trả về như title hay price, laravel cũng hỗ trợ rất nhiều thứ như thêm relationships, data …, mọi người có thể đọc thêm docs trên Laravel.

Hiện tại có 3 cơ chế Authorize chính:

Tùy thuộc vào service của bạn, mà hãy chọn loại Authorize có mức độ phù hợp, cố gắng giữ nó càng đơn giản càng tốt.

Viết API thì cũng cần chú ý về CORS là gì?

Ai cũng biết việc viết API docs là cần thiết, tuy nhiên để có một API docs hoàn chỉnh cũng tiêu tốn khá nhiều thời gian. Nhất là trong lúc dự án gấp rút thì mọi người thường chỉ để API docs ở mức siêu cơ bản. Tham khảo thêm cách viết API Document.

API document là một phần tương tự như Unit Test vậy – lấy ngắn để nuôi dài.

Nếu không được chăm sóc kỹ, thì đến lúc maintain hoặc thay đổi spec thì hậu quả sẽ rất thảm khốc, dưới đây là một số lưu ý lúc viết docs:

Tham khảo thêm các việc làm API lương cao hấp dẫn tại đây

Giao diện lập trình ứng dụng (application programming interfaces, hay API) là một kênh giao tiếp giữa hai ứng dụng. Dù bạn có biết hay không, bạn chắc chắn đã sử dụng API một lúc nào đó khi duyệt internet hoặc sử dụng các chương trình trong cuộc sống hàng ngày.

Mặc dù API thường gửi dữ liệu phức tạp dưới dạng phản hồi, nhưng làm thế nào bạn có thể hiểu và sử dụng thông tin này để phục vụ người dùng của mình? API giúp cuộc sống trở nên dễ dàng, cả với nhà phát triển mới cũng như những người kinh nghiệm lâu năm. Vì vậy, bạn cần biết cách sử dụng chúng với ứng dụng của mình.

Trong bài viết này, chúng ta sẽ xem xét cách bạn có thể sử dụng API để phục vụ các chương trình của mình.

Các nhà phát triển tạo ra các API dưới dạng các sản phẩm có thể phục vụ các lập trình viên khác. Mục đích ở đây là làm cho các quy trình phát triển web phức tạp trở nên dễ dàng, hiệu quả và nhanh hơn cho các nhà phát triển hoặc doanh nghiệp.

Hầu hết các doanh nghiệp hiện phụ thuộc vào API của bên thứ ba để giải quyết vấn đề và phục vụ khách hàng tốt hơn. Tuy nhiên, việc sử dụng API không phức tạp như nhiều người nghĩ. Bạn có thể coi nó như một giải pháp của bên thứ ba nhằm cung cấp cho bạn một phản hồi cụ thể dưới dạng dữ liệu khi bạn thực hiện một yêu cầu HTTP cụ thể.

Sử dụng API cũng giống như đặt hàng tại một nhà hàng pizza. Bạn không thể vào bếp để nói với họ những gì bạn muốn mà cần một người phục vụ nhận order, giao nó cho nhà bếp rồi quay lại với chiếc pizza bạn muốn.

Hãy tưởng tượng API là liên kết giữa bạn và nhà bếp. Trong trường hợp này, bạn là khách ăn còn người phục vụ là API. Người phục vụ sẽ phản hồi với chiếc pizza của bạn (dữ liệu). Trong một API thực, ứng dụng web của bạn là khách hàng yêu cầu sử dụng nội dung của nhà cung cấp thông qua API của họ bằng cách thực hiện các yêu cầu HTTP điểm cuối.

Kết nối với một API yêu cầu bạn phải cắm chương trình của mình vào một điểm cuối API (API Endpoint). Bạn có thể xem đây là kết nối hai chiều. Điểm cuối được kết nối với chương trình của bạn sẽ gửi một yêu cầu, trong khi điểm cuối được kết nối với API sẽ gửi lại cho bạn một phản hồi cụ thể.

Điểm cuối là một URL yêu cầu và cung cấp cho khách hàng quyền truy cập trực tiếp vào các tài nguyên của một API.

Ngoài việc lấy dữ liệu bằng API, bạn cũng có thể POST (ĐĂNG) các yêu cầu từ nhà cung cấp đến khách hàng, sử dụng phương thức PUT để nhận thêm thông tin từ nhà cung cấp, cũng như sử dụng phương pháp DELETE để xóa dữ liệu hiện có khỏi chương trình của bạn. Mỗi phương pháp này thường có sẵn trong tài liệu của một API.

Việc tích hợp một API với chương trình của bạn không phải là một quyết định tự phát mà cần được suy tính trước. Bạn phải biết bạn muốn thông tin gì và  muốn bao nhiêu thông tin. Điều này làm giảm độ phức tạp, đặc biệt nếu bạn đang xử lý dữ liệu JSON dưới dạng một mảng đa chiều (multidimensional array). NÓ cũng cho phép bạn nhận được thông tin cụ thể mà bạn cần cho chương trình của mình.

Có hàng trăm API với các quy tắc khác nhau để kết nối với chúng. Một số API là miễn phí và mã nguồn mở, nhưng nhiều API khác chỉ có thể truy cập được trên đăng ký.

Trong khi một số API liền mạch, đơn giản và không yêu cầu bất kỳ điều kiện nào, các API khác có thể yêu cầu bạn đáp ứng các điều kiện như tạo khóa API hoặc đăng ký tài khoản của nhà phát triển trước khi có thể kết nối với điểm cuối của họ.

Tuy nhiên, một trong những phần quan trọng nhất của bất kỳ API nào là tài liệu của nó. Tốt nhất bạn nên đọc và làm theo tài liệu của bất kỳ API nào bạn định kết nối để biết hướng dẫn về cách viết code và sử dụng tài nguyên của nó, bởi mỗi API có các phương thức và hướng dẫn kết nối riêng.

Để kết nối với một API bạn cần biết các ngôn ngữ lập trình mà nó hỗ trợ.