Skip to content

Instantly share code, notes, and snippets.

@honzajavorek honzajavorek/toc.md Secret
Last active Jan 3, 2016

Embed
What would you like to do?
Jak psát API

Jak psát API

Uvidím, jak se to vydaří. Dokážu k těm tématům udělat ukázky, můžu si přichystat příklady, atd. Ukázat nějakou věc na příkladu si taky vezme čas. Mimochodem - mít na Jak psát API složku s funkčními příklady, to je super nápad!

Úvod do seriálu a problematiky

Kin Lane říká, že ... A decade ago, businesses were still working to understand the importance of having a website for doing business. Today, businesses are beginning to understand the similar importance in having an API.

Obchodní posun https://www.youtube.com/watch?v=rdBd_FP17kg

Hypermedia designs scale better, are more easily changed and promote decoupling and encapsulation, with all the benefits those things bring. http://steveklabnik.github.io/hypermedia-presentation/#12

Design

RESTful - opakování

HATEOAS

http://amundsen.com/blog/archives/1067#IDComment87517941 - hypermedia clients are harder to write, ... it took SOAP about ten years before folks started to see the limiting factors. it might be the same for JSON-esque models, too.

Hypermedia formats

  • proč je na prd používat čistý JSON, XML
  • vyhody hypermedia types http://amundsen.com/blog/archives/1069
  • http://amundsen.com/blog/archives/1059 - proc se zabyvat nejakym smetim kolem URL, fake hypermedia RWA4.55
  • jaké hypermedia formáty už existují pro JSON/XML
  • jaké jsou ve fázi draftů, k čemu se hodí, atd.
  • zoo, RWA10.199
  • vlastní media type, registrace, proč to dělat, nejdřív najít existující, pak rozšiřovat obecné, proč nevymýšlet svůj, atd.

Kazdy me pri hypermedia standards posle k http://xkcd.com/927/, ale ono je to spis jak obrazky - kazdy na trochu jiny use case.

ruzne hypermedia formaty (widely used) http://amundsen.com/hypermedia/

Caching

  • RWA11
  • stateless, cache
  • co znemaná stateless, uchovávání údajů o uživatelích na serveru (rate limiting je porušení, ale neva)
  • jak řešit stavovost (posílat s každým požadavkem, atd.)
  • čím víc stateless, tím lépe cachovatelné
  • techniky cachování, škálování na miliony uživatelů
  • if modified, atd. tyhle hlavičky
  • etags
  • HTTP 304 not modified

Parametrizace odpovědi

Authorization

stateless & sessions: http://stackoverflow.com/questions/3105296/if-rest-applications-are-supposed-to-be-stateless-how-do-you-manage-sessions krasne vysvetleni lidskymi slovy

HTTP2.0

Error handling

Content Negotiation, versioning

Dokumentace API

PATCH protokol

Tooling pro Python

  • Django REST framework, Tastypie
  • Flask RESTful, Eve
  • knihovny na HAL, JSON schema, content negotiation, PATCH protokol

RWA - RESTful Web APIs, Leonard Richardson & Mike Amundsen (O'Reilly 2013)


Způsob jakým téma předkládat - já to dělám takto a líbí se mi to proto a proto, vidím v tom tyto a tyto výhody. Nikomu tento způsob nenutím, máme na výběr spoustu možností a formátů, nevím nic o vaší konkrétní aplikaci (třeba se tam nejlépe hodí SOAP, protože pracuje s nějakým legacy systémem, kde je SOAPu plno), ale sám používám tento nejraději atd. - http://amundsen.com/blog/archives/1120 (způsob jak se pokusit vyhnout dementním komentářům)

API Chaining

https://mail.google.com/mail/u/0/#label/Diskuse/148efbc2dd448440 http://www.slideshare.net/bobdobbes/api-abstraction-api-chaining

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.