Top Banner
RESTful API development with Symfony2
18

RESTful API development with Symfony2

Jan 21, 2018

Download

Technology

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: RESTful API development with Symfony2

RESTful API development with Symfony2

Page 2: RESTful API development with Symfony2

www.apibest.com 2

Тарас Омельяненко

О докладчике

- APIBEST, CEO, Co-founder - ThinkPHP community,

Co-organizer - Architect - Full Stack developer - DevOps

Page 3: RESTful API development with Symfony2

www.apibest.com 3

План доклада

• Проектирование API • Документирование API • Какие бандлы используются для ускорения разработки? • Внутрення структура приложения (типичная и рекомендуемая) • Валидация и сериализация моделей • Тестирование API

Page 4: RESTful API development with Symfony2

www.apibest.com 4

Проектирование

Page 5: RESTful API development with Symfony2

www.apibest.com 5

Обмен данными

Стороннее приложение

Запрос

Ответ

RESTful APIID: 2

ID: 1

ID: 3

ID: x

.

.

.

Коллекция объектов

Слой работы с данными

Page 6: RESTful API development with Symfony2

www.apibest.com 6

5 признаков качественного API

Семантическое

Документированное

Стабильное

Быстрое

Расширяемое

Page 7: RESTful API development with Symfony2

www.apibest.com 7

Документация

НАЗВАНИЕ МЕТОДА

Описание клиентской и серверной логики которые взаимодействуют с данным методом

Унифицированный идентификатор ресурса (URI)

Фильтры

Модель запроса Модель ответа

HTTP Коди

Page 8: RESTful API development with Symfony2

www.apibest.com 8

ID: 2

ID: 1

ID: 3

ID: x

.

.

.

Коллекция

Слой работы с данными

Семантическое

GET /labels.json?color=green

HTTP заголовки

Тело запроса

Запрос

HTTP заголовки

Тело запроса Ответ

Page 9: RESTful API development with Symfony2

www.apibest.com 9

Документациядолжна генерироваться на основе кода

Smartresponder Facebook Swagger

Page 10: RESTful API development with Symfony2

www.apibest.com 10

Примеры семантических URI

GET /api/v1/labels.json GET /api/v1/labels/{labelId}.json POST /api/v1/labels.json PUT /api/v1/labels/{labelId}.json PATCH /api/v1/labels/{labelId}.json DELETE /api/v1/labels/{labelId}.json

Page 11: RESTful API development with Symfony2

www.apibest.com 11

Стабильное

Jenkins Codeception JMeter

Page 12: RESTful API development with Symfony2

www.apibest.com 12

≈ 2329 мсEntity

Быстрое

≈ 84 мсData Transfer Object x 27

Data Transfer Object

Page 13: RESTful API development with Symfony2

www.apibest.com 13

Расширяемое

Масштабированное

Версионное

Структурированное

Понятное

Page 14: RESTful API development with Symfony2

www.apibest.com 14

Code reviewДавайте посмотрим что там под капотом

Структура проекта ТестыData Transfer Object

Page 15: RESTful API development with Symfony2

www.apibest.com 15

Code review

1 PHP2 MySQL3 Symfony 24 Swagger5 Codeception

Page 16: RESTful API development with Symfony2

www.apibest.com 16

Полезные ссылки

• Принципы построения эффективного REST API http://www.slideshare.net/Geeks_Lab/16-39090807

• Enterprise Symfony Architecture http://www.slideshare.net/lisachenko/enterprise-symfony-architecture

• Classification of HTTP-based APIs http://www.nordsc.com/ext/classification_of_http_based_apis.html

• HTTP Status Codes http://www.restapitutorial.com/httpstatuscodes.html

Page 17: RESTful API development with Symfony2

В о п р о с ы ?

Page 18: RESTful API development with Symfony2

Сп а с и б о з а в н и м а н и е !

+380 94 710 26 35

www.apibest.com [email protected]

Skype: taras.omelyanenko