Call api là gì
Show
Hiện nguyên lý REST và cấu trúc dữ liệu RESTful được biết đến rất rộng rãi trong giới lập trình, những vẫn có nhiều người hay nhầm lẫn. Bản thân REST không phải là một loại công nghệ, mà là phương thức tạo AIP với nguyên lý tổ chức nhất định. Những nguyên lý này nhằm hướng dẫn lập trình viên tạo môi trường xử lý API request được toàn diện hơn. Trong bài viết này, tôi sẽ giải thích một số phương thức lập trình RESTful ở góc nhìn toàn cảnh nhất, đồng thời làm rõ khái niệm REST APIs. Tôi sẽ tập trung vào câu hỏi “lập trình cái gì” hơn là “lập trình như thế nào”. REST For Web DevelopersREST là viết tắt của Representational State Transfer. Giải thích đơn giản, REST là một loạt hướng dẫn và dạng cấu trúc dùng cho việc chuyển đổi dữ liệu. Thông thường, REST hay được dùng cho ứng dụng web, nhưng cũng có thể làm việc được với dữ liệu phần mềm. API là viết tắt của Application Programming Interface, phương thức kết nối với các thư viện và ứng dụng khác. Windows có nhiều API, và Twitter cũng có web API, tuy chúng thực hiện các chức năng khác nhau, với mục tiêu khác nhau. Nhìn chung, RESTful API là những API đi theo cấu trúc REST. Cấu trúc REST là gì?Thật khó giải thích sao cho cụ thể. Tuy nhiên, vẫn có một số quy luật bất biến, như:
Sẽ không có bất cứ hướng dẫn nào như W3C HTML5 spec, quá cụ thể đến mức dẫn đến nhầm lẫn, đặc biệt là các nhầm lẫn tai hại quanh thuật ngữ REST. Hơn nữa, bạn không nhất thiết phải tuân theo những quy luật trên không sai một chữ (dù quả thật đó là những quy luật quan trọng của RESTful API hiện đại).
REST là một phương thức nhỏ gọn. Nên rất được ưa chuộng cho dữ liệu HTTP. Cũng vì vậy nên REST dần phổ biến trên web, và được xem là lựa chọn “số một” cho lập trình API. Theo như Vinay Sahni đã nói, “API chính là UI của lập trình viên.” Mọi thứ phải dể dùng, với trải nghiệm tốt. Và đây chính là mục tiêu RESTful APIs hướng đến. Cần chú ý với RESTful APIsNhững tip dưới đây dành riêng cho API trong môi trường ứng dụng web. Đồng nghĩa rằng HTTP là bắt buộc, và dữ liệu API sẽ thường được host trên external server. Hãy xem thử RESTful API làm việc như thế nào bên phía người dùng API. Người dùng API là lập trình viên web có thể build một script kết nối đến một external API server, rồi dữ liệu cần thiết sẽ chuyển sang HTTP. Lập trình viên khi đó có thể hiển thị dữ liệu lên website mà không cần đến truy cập cá nhân vào external server. Nhìn chung, có bốn lệnh dùng để truy cập RESTful API:
Mỗi phương thức trên phải được API call thông qua để gửi chỉ thị cho server phải làm gì. Đại đa số web API chỉ cho phép GET request lấy dữ liệu khỏi một externer server. Authencation không bắt buộc, nhưng nên có khi ta cho phép các lệnh khá “nguy hiểm” như PUT hay DELETE. Tuy nhiên, rất ít thấy RESTful API nào cho phép các lệnh này. Ví dụ như https://pokeapi.co/, Pokemon API database miễn phí, với lượng rate limit công khai kha khá (rate limit: người dùng bị giới hạn số kiểu API request thực hiện được), nhưng chỉ cho phép phương thức GET để truy cập tài nguyên. Trong “dân gian” ta hay gọi kiểu giới hạn này là consumption-only API.
Return type cũng rất quan trọng, và nên dồng nhất với tất cả tài nguyên. JSON cũng là một return type nổi tiếng, với online specs giải thích đúng cấu trúc dữ liệu. RESTfill API dùng danh từ cho API object, và động từ để thực hiện hành vi lên những object này. Truy cập API ResourcesPublic API thường truy cập được từ địa chỉ website trực tiếp. Nói cách khác, cấu trúc URL rất quan trọng, chỉ nên dùng cho API request. Một số URL có thể bao gồm đường dẫn tiền tố như /v2/ cho phiên bản 2 cập nhật từ API trước đó; hay thấy ở những lập trình viên muốn giữ 1.x API, nhưng vẫn muốn cung cấp cấu trúc mới nhất. Nên nhớ, return data ở endpoint sẽ thay đổi mạnh mẽ dựa vào phương thức HTTP. Ví dụ, GET trả nội dung, còn POST tạo nội dung mới. Request có thể chỉ đến cùng một endpoint, nhưng kết quả có thể rất khác. https://media02.hongkiat.com/rest-restful-api-dev/03-reddit-api-documentation.jpg Để hiểu rõ khái niệm này, các bạn có thể lên tìm nhiều ví dụ online khác. Ngoài Pokeapi, ta còn có:
Tự build APIQuá trình xây dựng một API riêng không dễ dàng, nhưng cũng không quá phức tạp như nhiều người nghĩ. Mỗi API phải kết nối đến server để trả dữ liệu. Bạn không những phải viết code để làm điều đó, mà còn phải format return data nữa. Một số yêu cầu khác có thể gồm authentication và rate limiting. Hãy điểm qua một số nguyên lý cơ bản của cấu trúc API. Build Endpointsbuilding endpoint là một phần quan trọng trong lập trình API. Khi tạo tài nguyên bạn sẽ muốn dùng danh từ đấy, dừng dùng động từ. Nói cách khác dữ liệu API phải trả kết quả là người, nơi chốn, hoặc “thứ” gì đó. Thông thường, bạn sẽ nhận một “thứ” với thuộc tính cụ thể (ví dụ như tweet và metadata). Tên danh từ là một phần cực kỳ quan trọng trong lập trình API, dù rất khó học. Nên hãy cố gắng càng đơn giản càng tốt Vấn đề đáng tranh cãi ở đây là danh từ số ít hay số nhiều. Nếu bạn đang tạo API Twitter, bạn nên có object group trước (như: tweet), rồi object item sau (như: tweet ID).
Trong trường hợp này, tôi cho rằng số ít trong sẽ dễ nhìn hơn, đặc biệt khi chỉ trả một tài nguyên. Đặt Return TypeMột vấn đè quan trọng nữa là return type data. Đa số người dùng web trông chờ nội dung JSON, vậy đây có lẽ là lựa chọn tốt nhất bân cạnh XML. JSON chính là API return type nên tàng cho lập trình web. Vẫn còn nhiều mặt về lập trình API không thể kể hết, nếu bạn chưa quen thuộc với API, hãy dành thời gian “vọc” trước một chút. Từ đó xem thử những lập trình viên kahcs làm việc với API như thế nào, và hy vọng bạn sẽ dần quan thuộc hơn với những yêu cầu của API. Nếu chỉ mới biết về API, bạn có thể xem qua các tài liệu sau:
Tài liệu nghiên cứuLuyện tập vẫn là cách lập trình nhanh nhất. Những lý thuyết đã qua kiểm chứng luôn đáng để bạn học hỏi, vì qua đó bạn có thể tranh luận với những lập trình viên khác và hiểu được nguyên lý đằng sau lý thuyết đó. Kết nối với các API khác trước cũng là một cách học hỏi hay. Hãy tìm hiểu về các điểm cơ bản nhất của kết nối client-side, và từ đó bạn có thể chuyển sang lập trình API, tạo API riêng từ con số không. Bạn có thể tham khảo một số tài liệu dưới nếu muốn đi theo con đường API này. Sách
Bài viết
Nguồn: Techtalk
API là gì? API là viết tắt của Application Programming Interface – phương thức trung gian kết nối các ứng dụng và thư viện khác nhau. Sử dụng API giúp developer đẩy nhanh quá trình phát triển phần mềm, tạo ra sự nhanh chóng, thuận tiện để hướng đến mục tiêu cuối là nâng cao hiệu suất công việc. Đọc bài viết của ITviec để tìm hiểu xem:
API là gì?API là viết tắt của Application Programming Interface – phương thức trung gian kết nối các ứng dụng và thư viện khác nhau. Nó cung cấp khả năng truy xuất đến một tập các hàm hay dùng, từ đó có thể trao đổi dữ liệu giữa các ứng dụng. Thi thoảng vẫn có người lầm tưởng API là một ngôn ngữ lập trình nhưng thực ra, API chỉ là các hàm hay thủ tục thông thường. Các hàm này được viết trên nhiều ngôn ngữ lập trình khác nhau.
4 đặc điểm nổi bật của API
Ưu và nhược điểm của APIƯu điểm
Nhược điểm
Ứng dụng của API
Làm sao để đảm bảo tính bảo mật cho API?2 vấn đề phổ biến nhất liên quan đến bảo mật API1. SQL Injection Injection hay SQL Injection là một lỗi khá phổ biến. Những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web đến hệ thống quản lý cơ sở dữ liệu (DBMS) để khai thác các thông tin nhạy cảm. Hướng khắc phục: Ràng buộc thật kỹ dữ liệu người dùng nhập vào. Có thể dùng Regular Expression để loại bỏ đi các ký tự lạ hoặc các ký tự không phải là số hoặc dùng các hàm có sẵn để giảm thiểu lỗi. 2. Spam request Những request để chế độ công khai rất dễ bị spam.
Hướng khắc phục: Hãy khiến cho những request này trở nên phức tạp hơn. Chẳng hạn: thêm câu hỏi bảo mật, yêu cầu người dùng chờ trong giây lát để thực hiện các thao tác tiếp theo… Một số phương án ngăn rò rỉ lỗ hổng thông tin trong API
Những API miễn phí dành cho developer
Nhìn chung, API là một công cụ quan trọng cho các doanh nghiệp thuộc nhiều ngành. API mang đến cho các công ty cơ hội mở rộng quy mô, thúc đẩy sự đổi mới và tiếp cận nhiều đối tượng hơn. Như Forbes đã nói, “Việc doanh nghiệp thắng hay thua ngày càng phụ thuộc vào mức độ họ kết nối với các ứng dụng, thiết bị và dịch vụ của bên ngoài” và xét từ góc nhìn kỹ thuật, API cho phép việc kết nối đó diễn ra. Có thể thấy, API đang thúc đẩy một làn sóng đổi mới mới tập trung vào các dịch vụ chia sẻ. Bạn thấy bài viết hay và cần thiết với nhiều người? Đừng ngại nhấn nút Share bên dưới nhé. Và đừng quên tham khảo việc làm Developer trên ITviec |