Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Инструменты для обнаружения рассинхронизации ре...
Search
Dmitry Efimov
February 22, 2018
Programming
0
51
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
Dmitry Efimov
February 22, 2018
Tweet
Share
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
45
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
47
Валидация “REST” API по документации APIB
tuwilof
0
45
Негативное тестирование “REST” API и защита от него
tuwilof
0
340
Ликбез по JSON
tuwilof
0
90
API Blueprint
tuwilof
0
84
Документирование API
tuwilof
0
200
Почему и как заменить все id на UUID
tuwilof
0
98
Authentication in rails. Monolith vs SPA
tuwilof
0
210
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
620
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
800
CSC307 Lecture 08
javiergs
PRO
0
670
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
150
CSC307 Lecture 04
javiergs
PRO
0
660
Fluid Templating in TYPO3 14
s2b
0
130
CSC307 Lecture 06
javiergs
PRO
0
690
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
620
Apache Iceberg V3 and migration to V3
tomtanaka
0
180
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
40k
Balancing Empowerment & Direction
lara
5
900
The Mindset for Success: Future Career Progression
greggifford
PRO
0
240
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
58
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
エンジニアに許された特別な時間の終わり
watany
106
230k
Docker and Python
trallard
47
3.7k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
What's in a price? How to price your products and services
michaelherold
247
13k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
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