Một giới thiệu ngắn tới APIs (tiếp tục)
Tài liệu hướng dẫn cho các APIs này điển hình mô tả các routes hay điểm cuối (endpoints), như các URLs cái bạn
có thể yêu cầu, với tham số biến hoặc trong đường dẫn của URL hay như các tham số GET.
Ví dụ, cái sau cung cấp pathparam như một tham số trong đường dẫn route:
http://example.com/the-api-route/pathparam
Và cái này cung cấp pathparam như giá trị cho tham số param1:
http://example.com/the-api-route?param1=pathparam
Cả hai phương pháp truyền dữ liệu biến tới API thường xuyên được sử dụng, mặc dù vậy, như nhiều chủ đề trong
tranh luận khoa học máy tính, tâm lí học đã sôi nổi trên khi nào và nơi nào các biến nên được truyền qua đường
dẫn hay qua các tham số.
Trả lời từ API thường được trả về bằng hình thức JSON hay XML. JSON phổ biến hơn nhiều trong thời hiện đại so
với XML, nhưng bạn vẫn có thể thấy một vài trả lời XML. Nhiều APIs cho phép bạn thay đổi dạng trả lời, sử dụng
tham số khác để định nghĩa dạng gì trả lời bạn thích.
Sau đây là một ví dụ của một trả lời API hình thức JSON:
{“user”:{“id”: 123, “name”: “Ryan Mitchell”, “city”: “Boston”}}
Sau đây là một ví dụ của trả lời API hình thức XML:
<user><id>123</id><name>Ryan Mitchell</name><city>Boston</city></user>
ip-api.com cung cấp một API đơn giản dễ sử dụng cái dịch các địa chỉ IP thành địa chỉ vật lí thực. Bạn có thể
thử một yêu cầu API đơn giản bằng cách nhập cái sau trong trình duyệt của bạn:
http://ip-api.com/json/50.78.253.58
Cái này sinh ra một trả lời như cái sau:
{“as”: “AS7922 Comcast Cable Communications, LLC”,”city”: “Boston”,
“country”: “United States”,”countryCode”: “US”,
“isp”: “Comcast Cable Communications”,”lat”: 42.3584,”lon”: -71.0598,
“org”: “Boston Park Plaza Hotel”,”query”: “50.78.253.58”,
“region”: “MA”,”regionName”: “Massachusetts”,”status”: “success”,
“timezone”: “America/New_York”,”zip”: “02116”}
Nhận thấy rằng yêu cầu chứa tham số json trong đường dẫn. Bạn có thể yêu cầu một trả lời XML hay CSV bằng cách thay
đổi tham số này tùy theo:
http://ip-api.com/xml/50.78.253.58
http://ip-api.com/csv/50.78.253.58