Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Инструменты для обнаружения рассинхронизации ре...
Search
Dmitry Efimov
February 22, 2018
Programming
58
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
Dmitry Efimov
February 22, 2018
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
52
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
52
Валидация “REST” API по документации APIB
tuwilof
0
51
Негативное тестирование “REST” API и защита от него
tuwilof
0
350
Ликбез по JSON
tuwilof
0
94
API Blueprint
tuwilof
0
89
Документирование API
tuwilof
0
200
Почему и как заменить все id на UUID
tuwilof
0
110
Authentication in rails. Monolith vs SPA
tuwilof
0
220
Other Decks in Programming
See All in Programming
contenteditable と日本語入力に向き合う
colorful12
0
200
Jetpack Compose Mechanisms
skydoves
3
820
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
680
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
phperだってパンチカードでコーディングしたい
o0h
PRO
0
350
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
800
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
440
AWSに止められる覚悟してますか?
morizo_1984
2
540
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
320
Featured
See All Featured
Practical Orchestrator
shlominoach
192
12k
Building AI with AI
inesmontani
PRO
1
1.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
The browser strikes back
jonoalderson
0
1.8k
GitHub's CSS Performance
jonrohan
1033
470k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Optimising Largest Contentful Paint
csswizardry
37
4k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
710
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Transcript
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
что такое реализованный код? как получить по нему информацию?
его тестируют, значит он существует
пусть реализация = тесты
тесты
нам нужно TDD
Test-Driven Development
документация
она тоже нужна
документация
какая документация без DDD
DDD?
Domain-Driven Design?
Проблемно- ориентированное проектированиe?
NO
Documentation- Driven Development
DDD это как TDD только вместо тестов документация
и те же проблемы, снова нужно что то писать помимо
кода и поддерживать
а что будет если их соединить DDD + TDD =
?
None
DDDTDD?
Document / Test-Driven Development (DTDD) Joshua Richardson https://techblog.chegg.com/2014/12/16/document- test-driven-development-dtdd/
идея не нова
gem 'apivore'
- нужно явно писать роутинг к json-schema-ам
None
gem ‘fdoc’
+не нужно явно писать роутинг к json-schema-ам
- только свой синтаксис на документацию и тесты
None
gem ‘fitting’
+не нужно явно писать роутинг к json-schema-ам
+ работает с обычными rspec тестами и использует существующую документацию
на API Blueprint (и в теории Swagger)
+ без фатального недостатка
None
что имеем?
тесты документация
fitting может проверить объединение между этими двумя множествами
JOIN! (прямо как БД)
тесты документация идеально не реализованно не задокументированно
всего два отчета реализованно / не реализованно задокументированно / не
задокументированно
для сервера достаточно проверять что он возвращает ответы по документации
но ответ не получить без запроса
1. смотрим задокументирован ли роут за запрос
2. смотрим есть ли в документации ответ с таким статусом
3. матчи ответ по JSON Schema из доки
4. (в ближайшем будущем) смотрим “покрытие” JSON Schema
где примеры? и можно ли добавить в fitting адаптер, что
бы переиспользовать в других языках и технологиях, например в проектах на Erlang?
None