Олег АлистратовРуководитель офиса разработки в Киеве
API:взгляд потребителя
WebCamp 2015, Одесса
4
• JSON-RPC• REST• XML-RPC• SOAP• WSDL, WSCL, WSFL• CORBA• Java RMI• Apache Thrift• AMF• Microsoft RPC
6
• XML• Protocol Buffers• JSON• YAML• SDXF• CSV• Sereal
7
http://api.example.org/method?output=xml
9
api.example.org/v1/api.example.org/v1.0/api.example.org/v1.0.0/
Semantic Versioning: semver.org
10
api.example.org/v1/ → api.example.org/v1.x.x/
api.example.org/v1.0/ → api.example.org/v1.0.x/
11
Сигнатура функции
12
POST /get_status?n=2 HTTP/1.1Content-type:application/x-www-form-urlencoded;charset=utf-8Host: example.orgContent-length: 22
Action=GetStatus&Id=42
13
{ "method": "get_status", "params": { "n":42 }, "id":1}
14
Валидация данных
15
Лояльность на входе —строгость на выходе
16
{ "alpha": 2, "beta": "2.0", "gamma": "3,0", "delta": "4.0 ", "epsilon": null}
17
5 cебября 2014 г.→
?→
2014-09-05T00:00:00+02
18
“http://api.example.org/" + “/method"
19
Асинхронные вызовы,пакетные вызовы
20
[ {"jsonrpc": "2.0", "method": "sum", "params": [1,2,4], "id": "1"}, {"jsonrpc": "2.0", "method": "notify_hello", "params": [7]}, {"jsonrpc": "2.0", "method": "subtract", "params": [42,23], "id": "2"}]
22
• Request• no-cache• no-store• max-age• max-stale• min-fresh• no-transform• only-if-cached
• Response• public• private• no-cache• no-store• no-transform• must-revalidate• proxy-revalidate• max-age• s-maxage
23
• no cache• 5 seconds• 1 minute• 15 minute• 1 hour• 6 hours• 24 hours• never expires
25
• https://api.example.org/v1/method
• OAuth
27
Пакет Цена Вызовов API / день Вызовов API / минуту
Разработчик $0 500 10
Стандарт $100 5000 100
Бизнес $200 100 000 1000
Олег Алистратов
Руководитель офиса разработки в Киеве
[email protected]
Спасибо