Šta je API? I druge akronimi: REST, SOAP, XML, JSON, WSDL
Kada koristite pretraživač, vaš pretraživač postavlja zahteve sa klijentovog servera, a server šalje nazad podatke koje vaš pretraživač sastavlja i prikazuje veb stranicu sa njima. Ali šta ako samo želite da vaš server ili web stranica razgovaraju sa drugim serverom? Ovo bi zahtijevalo da programirate na API.
Šta znači API?
API je skraćenica za Interfejs programiranja aplikacija (API). API je skup rutina, protokola i alata za pravljenje web-omogućenih i mobilnih aplikacija. API specificira kako možete autentifikovati (opciono), zatražiti i primiti podatke sa API servera.
Šta je API?
Kada se koristi u kontekstu web razvoja, API je obično definirani skup Hypertext Transfer Protocola (HTTP) poruke zahtjeva, zajedno sa definicijom strukture odgovornih poruka. Web API-ji omogućavaju kombinaciju više usluga u nove aplikacije poznate kao mashups.
Wikipedia
Navedimo jednostavan primjer. Ako koristite skraćivač linkova za distribuciju long URL lakše bolje, možete koristiti uslugu poput Bit.ly. Ukucate dugi URL, pošaljete URL, a Bit.ly odgovara kratkim URL-om.
Šta ako želite da koristite Bit.ly u okviru platforme koju koristite? Možda ste napravili QR kod za izradu online, ali želite da se dugi URL-ovi prvo skrate. U ovom slučaju, možete programirati svoju web lokaciju da pošalje zahtjev Bit.ly API-ju, a zatim snimite odgovor kako biste napravili svoj QR kod.
Proces je automatiziran s API-jem gdje nije potrebna ljudska intervencija. Ovo je prilika koju API-ji pružaju svakoj organizaciji. API-ji pomažu sistemima u sinhronizaciji podataka, obradi zahtjeva i automatizaciji procesa koji se obično rade ručno.
Ako platforma ima robustan API, to znači da možete i integrirati i automatizirati – štedeći ručno vrijeme, poboljšavajući mogućnosti vaših platformi u realnom vremenu i osiguravajući poboljšanu preciznost – izbjegavajući probleme s ručnim unosom podataka.
Video o tome kako API-ji rade
Ako ste programer platforme, API-ji također nude mogućnost odvajanja korisničkog sučelja od vaših računanja i upita baze podataka. Zašto je to važno? Dok razvijate svoje korisničko sučelje, možete koristiti iste API-je koje objavljujete za druge treće strane. Možete prepisati svoje korisničko sučelje bez brige o prekidu pozadinske integracije.
Kako pronaći dostupne API-je
Tražite li API za određeni proizvod ili uslugu? Evo nekih resursa koji navode API-je koje možete koristiti lično i komercijalno:
Kako testirati API-je
API je jednostavno HTTP zahtjev, slično kao pretraživač. Razlika je u tome što API često zahtijeva neki metod provjere autentičnosti da bi uputio zahtjev. Ako nije potrebna autentifikacija, možete čak zatražiti tako što ćete zalijepiti URL zahtjeva u pretraživač. Evo primjera zahtjeva za an open-source vremenski API.
Koristeći OSX, možete koristiti cURL naredbu u prozoru terminala. Nakon izvršenja naredbe, cURL
će napraviti GET zahtjev na navedeni API URL, a odgovor koji sadrži podatke vremenske prognoze će biti prikazan na Terminalu.
curl "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t_weather=true&hourly=temperature_2m,relativehumidity_2m,windspeed_10m"
Na Windows, možete instalirati curl
i dodajte ga u PATH sistema da bi komanda radila. Alternativno, možete koristiti treće strane curl
izvršne datoteke za Windows, kao što su cURL za Windows or curl za Windows od Winamp-a i slično pokrenite komandu curl.
Evo nekoliko dodatnih jezika i načina na koji možete napraviti API zahtjev:
- python: The
requests
biblioteka se obično koristi za izradu HTTP zahtjeva u Pythonu. Evo primjera:
import requests
response = requests.get('https://example.com')
print(response.text)
- JavaScript (Node.js): The
axios
biblioteka je široko korišćen HTTP klijent za Node.js. Evo primjera:
const axios = require('axios');
axios.get('https://example.com')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
- JQuery: Koristiti
$.ajax
or$.get
funkcije za izradu HTTP zahtjeva. Evo primjera pravljenja GET zahtjeva pomoću$.ajax
u jQueryju:
$.ajax({
url: 'https://example.com',
method: 'GET',
success: function(response) {
console.log(response);
},
error: function(error) {
console.error(error);
}
});
- Rubin: Ruby-jeva standardna biblioteka uključuje
net/http
modul za izradu HTTP zahtjeva. Evo primjera:
require 'net/http'
require 'uri'
uri = URI.parse('https://example.com')
response = Net::HTTP.get_response(uri)
puts response.body
- Java: Java pruža različite biblioteke i okvire za izradu HTTP zahtjeva, kao što su
HttpURLConnection
(u standardnoj biblioteci), Apache HttpClient ili OkHttp. Evo primjera korištenjaHttpURLConnection
:
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# ili ASP.NET: Koristiti
HttpClient
klase za izradu HTTP zahtjeva. Evo primjera kako napraviti GET zahtjev koristećiHttpClient
u 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);
}
}
}
Ne zaboravite dodati neophodno using
naredbe i postupajte sa izuzecima na odgovarajući način kada radite sa njima HttpClient
u vašoj ASP.NET ili C# aplikaciji.
- WordPress: WordPress API ima svoje funkcije
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);
}
Ovi primjeri pokazuju kako se izvodi osnovni GET zahtjev, ali ove biblioteke obično podržavaju različite HTTP metode (GET, POST, itd.) i pružaju opcije za postavljanje zaglavlja, slanje tereta zahtjeva i rukovanje odgovorima na napredniji način.
Ne zaboravite instalirati sve potrebne ovisnosti ili biblioteke za vaš programski jezik prije pokretanja primjera koda.
Talend ima odličnu Chrome aplikaciju za interakciju s API-jima i gledanje njihovih odgovora ako želite testirati API-je bez pisanja linije koda.
Dodajte Talendov API Tester u Chrome
Šta znači kratica SDK?
SDK je skraćenica od Komplet za programere softvera.
Kada kompanija objavi svoj API, obično postoji prateća dokumentacija koja pokazuje kako se API autentifikuje, kako se može postaviti upit i odgovarajući odgovori. Kako bi pomogle programerima da krenu u start, kompanije često objavljuju softverski paket za razvojne programere (
SDK) za lako uključivanje klase ili potrebnih funkcija u projekte koje programer piše.Šta znači kratica XML?
XML je skraćenica od Proširivi jezik za označavanje. XML je jezik za označavanje koji se koristi za kodiranje podataka u formatu koji je i čitljiv i strojno čitljiv.
Evo primjera kako se XML pojavljuje:
<?xml verzija ="1.0"?> <proizvod id ="1"> Proizvod A Prvi proizvod 5.00 svaki
Šta znači kratica JSON?
JSON je skraćenica od JavaScript oznaka objekta. JSON je format za strukturiranje podataka koji se šalju naprijed-nazad preko API-ja. JSON je alternativa XML-u. REST API-ji češće odgovaraju sa JSON – otvorenim standardnim formatom koji koristi tekst čitljiv za ljude za prijenos objekata podataka koji se sastoje od parova atribut-vrijednost.
Evo primjera podataka iznad pomoću JSON-a:
{ "id": 1, "naslov": "Proizvod A", "opis": "Prvi proizvod", "Cijena": { "iznos": "5.00", "po": "svaki" } }
Šta znači kratica REST?
REST je akronim za Reprezentativni državni transfer arhitektonski stil za distribuirane hipermedijske sisteme.
Joj ... duboko udahni! Možete pročitati čitav tekst disertacija ovdje, nazvan Arhitektonski stilovi i Dizajn mrežnih softverskih arhitektura dostavljen delimično zadovoljavajući zahteve za stepen DOKTORA FILOZOFIJE u informatičkim i računarskim naukama Roy Thomas Fielding.
Hvala, dr. Fielding!
Šta znači kratica SOAP?
SOAP je skraćenica za Protokol jednostavnog pristupa objektima
Nisam programer, ali po mom mišljenju, programeri koji vole SOAP to rade jer mogu lako razviti kod u standardnom programskom interfejsu koji čita Jezik definicije web usluge (wsdl) fajl. Ne moraju analizirati odgovor, to je već postignuto pomoću WSDL-a. SOAP zahtijeva programsku omotnicu, koja definira strukturu poruke i kako je obraditi, skup pravila kodiranja za izražavanje instanci aplikacijski definiranih tipova podataka i konvenciju za predstavljanje poziva procedura i odgovora.