Top Banner
Олег Алистратов Руководитель офиса разработки в Киеве API: взгляд потребителя WebCamp 2015, Одесса
28

API: взгляд потребителя

Aug 14, 2015

Download

Software

Oleg Alistratov
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: API: взгляд потребителя

Олег АлистратовРуководитель офиса разработки в Киеве

API:взгляд потребителя

WebCamp 2015, Одесса

Page 2: API: взгляд потребителя

2

Page 3: API: взгляд потребителя

3

Протоколы

Page 4: API: взгляд потребителя

4

• JSON-RPC• REST• XML-RPC• SOAP• WSDL, WSCL, WSFL• CORBA• Java RMI• Apache Thrift• AMF• Microsoft RPC

Page 5: API: взгляд потребителя

5

Сериализация

Page 6: API: взгляд потребителя

6

• XML• Protocol Buffers• JSON• YAML• SDXF• CSV• Sereal

Page 7: API: взгляд потребителя

7

http://api.example.org/method?output=xml

Page 8: API: взгляд потребителя

8

Версионирование

Page 9: API: взгляд потребителя

9

api.example.org/v1/api.example.org/v1.0/api.example.org/v1.0.0/

Semantic Versioning: semver.org

Page 10: API: взгляд потребителя

10

api.example.org/v1/ → api.example.org/v1.x.x/

api.example.org/v1.0/ → api.example.org/v1.0.x/

Page 11: API: взгляд потребителя

11

Сигнатура функции

Page 12: API: взгляд потребителя

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

Page 13: API: взгляд потребителя

13

{ "method": "get_status", "params": { "n":42 }, "id":1}

Page 14: API: взгляд потребителя

14

Валидация данных

Page 15: API: взгляд потребителя

15

Лояльность на входе —строгость на выходе

Page 16: API: взгляд потребителя

16

{ "alpha": 2, "beta": "2.0", "gamma": "3,0", "delta": "4.0 ", "epsilon": null}

Page 17: API: взгляд потребителя

17

5 cебября 2014 г.→

?→

2014-09-05T00:00:00+02

Page 18: API: взгляд потребителя

18

“http://api.example.org/" + “/method"

Page 19: API: взгляд потребителя

19

Асинхронные вызовы,пакетные вызовы

Page 20: API: взгляд потребителя

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"}]

Page 21: API: взгляд потребителя

21

Кэширование

Page 22: API: взгляд потребителя

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

Page 23: API: взгляд потребителя

23

• no cache• 5 seconds• 1 minute• 15 minute• 1 hour• 6 hours• 24 hours• never expires

Page 24: API: взгляд потребителя

24

Безопасность

Page 25: API: взгляд потребителя

25

• https://api.example.org/v1/method

• OAuth

Page 26: API: взгляд потребителя

26

Квоты

Page 27: API: взгляд потребителя

27

Пакет Цена Вызовов API / день Вызовов API / минуту

Разработчик $0 500 10

Стандарт $100 5000 100

Бизнес $200 100 000 1000

Page 28: API: взгляд потребителя

Олег Алистратов

Руководитель офиса разработки в Киеве

[email protected]

Спасибо