Ki sa ki se yon API? Ak lòt akwonim: REST, SOAP, XML, JSON, WSDL
Lè ou itilize yon navigatè, navigatè ou a fè demann nan men sèvè kliyan an, epi sèvè a voye done ke navigatè ou a rasanble epi montre yon paj wèb avèk yo. Men, e si ou jis te vle sèvè w la oswa paj wèb pale ak yon lòt sèvè? Sa a ta mande pou ou pwogram nan yon API.
Ki sa ki API vle di?
API se yon akwonim pou Entèfas pwogramasyon aplikasyon an (API). Yon API se yon seri woutin, pwotokòl, ak zouti pou bati aplikasyon ki baze sou entènèt ak mobil. API a presize kijan ou ka otantifye (si ou vle), mande epi resevwa done ki soti nan sèvè API a.
Ki sa ki se yon API?
Lè yo itilize nan yon kontèks devlopman entènèt, yon API se anjeneral yon seri defini nan Pwotokòl Transfè Hypèrtèks (HTTP) demann mesaj, ansanm ak yon definisyon estrikti mesaj repons yo. Web API pèmèt konbinezon plizyè sèvis nan nouvo aplikasyon yo ke yo rekonèt kòm mashups.
Wikipedya
Ann bay yon egzanp senp. Si w itilize yon lyen kout pou distribye yon long URL pi fasil pi byen, ou ta ka itilize yon sèvis tankou Bit.ly. Ou tape URL long la, soumèt URL la, epi Bit.ly reponn ak URL kout la.
E si ou te vle sèvi ak Bit.ly nan sijè ki abòde lan nan yon platfòm ke w ap itilize? Petèt ou te konstwi yon kòd QR sou entènèt men ou vle URL long pi kout anvan. Nan ka sa a, ou ta ka pwograme sit ou a voye demann lan nan Bit.ly API a epi answit pran repons lan pou konstwi kòd QR ou.
Pwosesis la otomatize ak yon API kote pa gen okenn entèvansyon imen obligatwa. Sa a se opòtinite API yo bay chak òganizasyon. API yo ede sistèm nan senkronize done, pwosesis demann, ak otomatik pwosesis yo anjeneral fè manyèlman.
Si yon platfòm gen yon API solid, sa vle di ke ou ka tou de entegre ak otomatize - ekonomize tan manyèl, amelyore kapasite yo an tan reyèl nan platfòm ou yo, epi asire amelyore presizyon - evite pwoblèm ak antre done manyèl.
Yon Videyo De Kijan APIs Travay
Si ou se yon devlopè platfòm, API yo ofri tou opòtinite pou separe koòdone itilizatè ou a ak demann kalkil ak baz done ou. Poukisa sa enpòtan? Pandan w ap devlope koòdone itilizatè ou an, ou ka itilize menm API ou pibliye pou lòt twazyèm pati. Ou ka reekri koòdone itilizatè ou an san yo pa enkyete w sou kraze entegrasyon back-end la.
Kijan Pou Jwenn API ki disponib
Èske w ap chèche yon API pou yon pwodwi oswa sèvis espesifik? Men kèk resous ki bay lis API ke ou ka itilize pèsonèlman ak komèsyalman:
Kijan Pou Teste APIs
Yon API se tou senpleman yon demann HTTP, anpil tankou yon navigatè. Diferansasyon an se ke yon API souvan mande pou kèk metòd otantifikasyon pou fè demann lan. Si pa bezwen otantifikasyon, ou ka menm mande w pa kole URL demann lan nan yon navigatè. Men yon egzanp yon demann pou yon API meteyo sous louvri.
Sèvi ak OSX, ou ka itilize cURL kòmand nan yon fenèt tèminal. Lè yo egzekite kòmandman an, cURL
pral fè yon demann GET nan URL API yo bay la, epi repons ki gen done previzyon meteyo yo pral parèt nan Tèminal la.
curl "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t_weather=true&hourly=temperature_2m,relativehumidity_2m,windspeed_10m"
Sou Windows, ou ka enstale curl
epi ajoute li nan PATH sistèm lan pou kòmandman an travay. Altènativman, ou ka itilize twazyèm pati curl
ègzèkutabl pou Windows, tankou cURL pou Windows or curl pou Windows pa Winamp epi kouri lòd boukl la menm jan an.
Men kèk lòt lang ak kijan ou ka fè yon demann API:
- Piton: Jounal
requests
se bibliyotèk souvan itilize pou fè demann HTTP nan Python. Men yon egzanp:
import requests
response = requests.get('https://example.com')
print(response.text)
- JavaScript (Node.js): Jounal
axios
bibliyotèk se yon kliyan HTTP lajman itilize pou Node.js. Men yon egzanp:
const axios = require('axios');
axios.get('https://example.com')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
- JQuery: Sèvi ak nan
$.ajax
or$.get
fonksyon pou fè demann HTTP. Men yon egzanp pou fè yon demann GET lè l sèvi avèk$.ajax
nan jQuery:
$.ajax({
url: 'https://example.com',
method: 'GET',
success: function(response) {
console.log(response);
},
error: function(error) {
console.error(error);
}
});
- Ruby: Bibliyotèk estanda Ruby a gen ladann
net/http
modil pou fè demann HTTP. Men yon egzanp:
require 'net/http'
require 'uri'
uri = URI.parse('https://example.com')
response = Net::HTTP.get_response(uri)
puts response.body
- Java: Java bay divès bibliyotèk ak kad pou fè demann HTTP, tankou
HttpURLConnection
(nan bibliyotèk estanda a), Apache HttpClient, oswa OkHttp. Men yon egzanp lè l sèvi avèkHttpURLConnection
:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Main {
public static void main(String[] args) throws IOException {
URL url = new URL("https://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
System.out.println(response.toString());
}
}
- C# oswa ASP.NET: Sèvi ak nan
HttpClient
klas pou fè demann HTTP. Men yon egzanp sou fason pou fè yon demann GET lè l sèvi avèkHttpClient
nan C#:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync("https://example.com");
response.EnsureSuccessStatusCode(); // Ensure a successful response
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
Sonje ajoute sa ki nesesè yo using
deklarasyon epi jere eksepsyon yo kòmsadwa lè w ap travay avèk yo HttpClient
nan aplikasyon ASP.NET oswa C# ou.
- WordPress: WordPress API a gen pwòp fonksyon li yo
wp_remote_get
orwp_remote_post
:
$response = wp_remote_get('https://example.com');
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
echo "Request failed: $error_message";
} else {
$body = wp_remote_retrieve_body($response);
$data = json_decode($body);
// Process the retrieved data
var_dump($data);
}
Egzanp sa yo montre kijan pou fè yon demann GET debaz, men bibliyotèk sa yo anjeneral sipòte diferan metòd HTTP (GET, POST, elatriye) epi yo bay opsyon pou mete tèt, voye chaj demann demann, ak jere repons yo nan yon fason ki pi avanse.
Sonje enstale nenpòt depandans oswa bibliyotèk obligatwa pou langaj pwogram ou a anvan ou kouri egzanp kòd yo.
Talend gen yon gwo aplikasyon Chrome pou kominike avèk API yo epi wè repons yo si ou ta renmen teste API yo san w pa ekri yon liy kòd.
Ajoute API Tester Talend nan Chrome
Ki sa akronim sdk la kanpe pou?
SDK se yon akwonim pou Twous Developer Software.
Lè yon konpayi pibliye API li yo, anjeneral gen dokiman ki akonpaye ki montre kouman API a otantifye, ki jan yo ka mande li, ak repons ki apwopriye yo. Pou ede devlopè yo jwenn yon kòmansman, konpayi yo souvan pibliye yon Twous Software Developer (
Sdk) fasilman enkli yon klas oswa fonksyon ki nesesè yo nan pwojè pwomotè a ekri.Ki sa XML akwonim la kanpe pou?
XML se yon akwonim pou extensible Markup Language. XML se yon langaj maketing ki itilize pou kode done nan yon fòma ki ka lizib pou moun ak machin.
Men yon egzanp sou kouman XML parèt:
<?xml vèsyon ="1.0"?> <pwodwi id ="1"> Pwodwi A. Premye pwodwi a 5.00 chak
Kisa akwonim JSON kanpe pou?
JSON se yon akwonim pou JavaScript objè notasyon. JSON se yon fòma pou estriktire done ke yo voye retounen ak lide atravè yon API. JSON se yon altènativ a XML. API REST yo pi souvan reponn ak JSON - yon fòma estanda ouvè ki sèvi ak tèks lizib pou moun transmèt objè done ki fòme ak pè atribi-valè.
Isit la nan yon egzanp nan done ki anwo yo lè l sèvi avèk JSON:
{ "id": 1, "Tit": "Pwodwi A", "deskripsyon": "Premye pwodwi a", "pri": { "kantite lajan": "5.00", "pou chak": "chak" } }
Ki sa REST akwonim la reprezante?
REST se yon akwonim pou la Transfè Eta Reprezantasyon style achitekti pou sistèm distribye hypermedia.
Whew ... gwo souf! Ou ka li tout la tèz isit la, yo rele Stil yo achitekti ak Design nan rezo ki baze sou lojisyèl Achitekti soumèt nan satisfaksyon pasyèl nan kondisyon yo pou degre nan DOKTÈ nan filozofi nan enfòmasyon ak Syans enfòmatik pa Roy Thomas Fielding.
Mèsi, Dr Fielding!
Ki sa SOAP akwonim la reprezante?
SAVON se yon akwonim pou ... Pwotokòl Aksè Objè Senp
Mwen pa yon pwogramè, men nan opinyon mwen, devlopè ki renmen SAVON fè sa paske yo ka fasilman devlope kòd nan yon koòdone pwogram estanda ki li Lang Definisyon Sèvis Entènèt (wsdl) dosye. Yo pa bezwen analize repons lan, li deja akonpli lè l sèvi avèk WSDL la. SOAP mande pou yon anvlòp pwogramasyon, ki defini estrikti mesaj la ak fason pou trete li, yon seri règ kodaj pou eksprime sikonstans tip done aplikasyon defini, ak yon konvansyon pou reprezante apèl ak repons pwosedi yo.