API – kľúčové teoretické východiská v roku 2025
1. Definícia a účel
- Application Programming Interface = zmluvne definované rozhranie, ktoré oddelí spotrebiteľa funkcionality od jej implementácie.
- Primárny cieľ: štandardizovaný prístup k dátam/službám, škálovateľnosť, integrácia heterogénnych systémov.
2. Taxonómia API
Kritérium | Hlavné kategórie | Poznámka pre prax |
---|---|---|
Logická vrstva | Systémové (OS API), knižnicové (SDK), hardvérové(firmvér), aplikačné/webové | Najčastejším predmetom integrácií sú webové HTTP API. |
Expozícia | Interné, partnerské, verejné | Riadi úroveň bezpečnosti, SLA a monetizácie. |
Architektonický štýl | REST, RPC (SOAP, gRPC), Graph-oriented (GraphQL), Event-driven/Streaming (WebSocket, Kafka, MQTT) | Voľba štýlu určuje spôsob modelovania zdrojov a prevádzkovú charakteristiku. |
Transport | HTTP/HTTPS, WebSocket, AMQP, MQTT, TCP, Bluetooth | Transport ≠ architektúra; REST beží primárne na HTTP, gRPC na HTTP/2. |
Formát dát | JSON, XML, Protocol Buffers, Avro, CBOR | Výber ovplyvňuje veľkosť správ, typovanie, spätnú kompatibilitu. |
Synchronizácia | Synchronous request/response vs. Asynchronous streaming/pub-sub | Latentné systémy (IoT, realtime) preferujú async model. |
3. Dominantné architektonické paradigmy
Paradigma | Primárny kontrakt | Silné stránky | Typické riziká |
---|---|---|---|
REST | URI + HTTP verb | Jednoduchosť, kešovanie, masívny ekosystém | Nekonzistentné naming, verzovanie v URL. |
SOAP (XML-RPC) | WSDL | Striktné schémy, WS-* rozšírenia | Verbóznosť, ťažkopádna DX. |
gRPC (Proto-RPC) | .proto kontrakt | Binárny formát, HTTP/2, streaming | Krehkejšie prehliadače, potreba code-genu. |
GraphQL | SDL schéma | Klient vyžaduje presné polia, jedna brána pre BFF | N-+1 dotazy, komplexný caching. |
WebSocket API | Vlastná wire-schéma | Full-duplex realtime | Správa stavových spojení. |
Event/Stream (Kafka, MQTT, NATS) | Topic + schema registry | Vysoká priepustnosť, loose coupling | Idempotencia, ordering. |
OData | EDM model | Štandardizované query parametre | Obmedzená flexibilita mimo Microsoft stack. |
4. Špecifikácie a popisné jazyky
- OpenAPI 3.x – de-facto štandard pre REST; nástrojový ekosystém (mock, test, gateway).
- AsyncAPI – kontrakty pre event-driven a streaming rozhrania.
- WSDL – XML kontrakt pre SOAP.
- RAML / API Blueprint – alternatívne DSL, menší podiel na trhu.
- JSON:API, HAL – konvencie pre uniformné REST hypermedia odpovede.
5. Životný cyklus API (API Lifecycle)
- Strategic Planning – business case, KPI, typ expozície.
- Design-First – kontrakt, doménový slovník, versioning stratégiu.
- Mock & Prototype – validácia DX a konzumentov.
- Build & Test – automatizované testy (unit, contract, performance).
- Deploy – gateway, CI/CD, canary rollout.
- Operate & Secure – rate-limit, AuthN (API key, OAuth 2.0, JWT), AuthZ (RBAC/ABAC), zero-trust.
- Monitor & Monetize – SLA, QoS, subscription, pay-per-call.
- Retire / Sunset – version deprecation, komunikácia so spotrebiteľmi.
6. Governance & Compliance
- API Gateway – centrálna politika (throttling, routing, TLS termination).
- Policy Management – GDPR, PCI-DSS, PSD2, Open Banking, HIPAA.
- Versioning modely – URI v1/v2, header-based, content-negotiation, schema evolution (back-compat).
- Quality Metrics – latency P95/P99, error rate, adoption curve, consumer churn.
7. Monetizačné a prevádzkové modely
- Freemium – bezplatný tier + quota, upsell na vyššie limity.
- Subscription – paušálne platby podľa SLA.
- Pay-per-use – jednotková cena za request alebo bandwidth.
- Revenue Sharing – percento z transakcie (napr. platobné API).
8. Developer Experience (DX) Essentials
- Portál & self-service onboarding – kľúče, sandbox, interaktívna dokumentácia (Swagger UI).
- SDK & codegen – minimalizuje vstupnú bariéru.
- Support model – tiered SLAs, technický account manažér, komunitné fórum.
9. Kľúčové pojmy na zapamätanie
- Contract-First > Code-First pre enterprise škálovanie.
- Idempotentné operácie – bezpečný retry.
- Backward compatibility – “never break existing clients”.
- Observability – structured logging, distributed tracing, metrics.