αα½ααααΈβα’αααβααΆααα’ααααααΆα ααΎααααα»αααΎαα
ααααΈααααααααααα·α
ααααα α αΎαααααα’αααααααΆαααααααααΆααα’αααΈααα·αααααααααΎαα αααααΆααααΈ
ααΆαααααα
α
αΌαα
αΆααααααΎαααΆαα½α banality α αααααα·ααΈβαααβααΆαβα αΎαβααααΌαβααΆαβααΆαααααβαααΆαβαα·αβααααΆααβαα
βααΎβαααα·ααΆβααΈβααΊ Linux, Windows, MacOSα α’αααα’αΆα
ααΆααααααααα·ααΈααα‘αΎααααααΆαα OS αααα’αααα
αΆααα’αΆααααααααΈ
ααααΆααΈαααΌαα·ααααα
ααΎαααΆαααααΎαααΎαααααΆααΈαααΌαααααααΆαααΆααααααααΆαααααΆααααααααααααααΎαα
- α αΌαα α’αααααααΎααααΆαα - α’αααααααααααα, ααΆααααααααΆαα - ααΆααααααααΆαα
- ααααααααΆαα»ααααΈα
- ααΌααα·αα·αααααΎαααΆαααααααααΆααααΌαααΆαααααααααααΉαααααΌαα
ααΎαααΉαααΆααααα
ααΆααααααΎααααααα αα·αααααΆααΆααααααΎαα’αααααΆααααααααΆαααΆαα’αα»ααααΆα
ααααΌαβααΎαβαααααΎαβααααααβααααΈ (α―αααΆα->ααααααβααααΈ) ααααα·αααΎα’ααααααα»αααΎαααααΎαααΆααααααα·ααΈααΆααΎαααααΌα ααααααααααΈααΉαααΎααααααααααααααααα·α ααΆααααΌα α αΌαααΎαααααΆααΆαααααΎααααΎααΎααααΈαααααΎααααααααααΆααααΈ (αααα»αααααΈαααααΆααααααΎααααααααααΆα’αΆα ααααΆααααααααΆαααΆαα’αα»ααααΆα)α ααααΎαααΎαααΆαα»ααΈαααΊαα»αααα·ααααααΆαααααααα ααααααααααΆαα -> ααα αΆαααααΎαα»α. ααααααααααααααΆαααα αααααΎα-αααααΆα. ααΆαααααα ααααΆααααααΈααΉαααααΌαααΆααααααΎααα αααα»ααααααΆα α αΎαααααΆαααα½ααααααΆααααααΆαααααααΉαααΎαα αααααααααααΆαααΆααααααααααΎαα»αααΆααααααα
- ααααααααααΎα αααααΆα
- url:
https://testmace-quick-start.herokuapp.com/posts - ααααΎαα»ααα½α json ααΆαα½αααααα
{"title": "New testmace quick start post"}
ααααα·αααΎα’αααααΆαααααΎα’αααΈααααααααΆαααααΉαααααΌα α ααα»α αααααΆααααΉαααΎααα ααΌα αααα
ααααααΆαααΆααααα ααααα·αααΎααΎαααααΆααΆααααααααααΎααα αααΆαααΈαααααΉααααα‘αααααααΌα 401 α αΎααααααααΆαααΆαα’αα»ααααΆα ααΎαααΉααα·αα’αΆα ααα½αααΆαα’αααΈαα ααΎαααΆαααΈααααααααα ααΆααΆααααααΎαααΆαα, ααΆααΌαα , ααΌα αααααΆαααααΉααα»α) α
ααααααααΆαααααΎαα»αααΆαα’αα»ααααΆα
ααΌα
αααααΆααα·ααΆααα½α
ααα αΎαααΆααΎαααΆαα
ααα»α
αααα
αα POST /login
ααααα json ααΆαα½ααααΎααααααααα {"username": "<username>", "password": "<password>"}
αααααΆαααααα username
ΠΈ password
(αααααααααΈαααΆααααααααΆαααΆαααΎ) ααΆαα’αααααα admin
ΠΈ password
αααααααα½αα ααΆααΆαααααΎααα α
ααα»α
αααα
ααααααααα‘αα json ααΌα
{"token": "<token>"}
. ααΎαααΉαααααΎααΆαααααΆααααΆαα’αα»ααααΆαα ααααααααΎα ααα αΆαααααΎαα»α ααααΆαααααααΆαααααα α
αΌαααΉαααΎααα½ααΆαα»ααααα»αα αααααα ααααΆαα αααααααΎααΆαα’αΌα αα·ααααααΆαα ααααΆααααΈααααΆαααααααΆααααααα±αααα
αααα»ααααααΆααααααααΆαααααΆαα αααααΎα-αααααΆα. α
αΌαααααααααΆαααΆααααααααΆαααααααα
ααΉαααααΎαααααΆααααααΎαααααΈα
- ααααααααααΎα αααααΆα
- url:
https://testmace-quick-start.herokuapp.com/login - ααααΎαα»ααα½α json ααΆαα½αααααα
{"username": "admin", "password": "password"}
α αΌαααααα·ααααα·ααααΎα α αΎαααα½ααααααΌαααΈαααααΆαα½αααΉααααααΆαααααΆαααααα»αααΆαααααΎαααα α’αααΈαα½αβααΌα ααα:
Refactoring: αα»αααΆαα ααααααα
αα αΌαααααααααααα ααααΎαα·αααααΌαααΆαααααΆααααΆααααααΈααααα½αααα ααα»ααααααααα·ααααααΆαα»ααα·ααααα·αααα½αααα ααααα·αααΎα’ααααααα‘ααααΎαα±αααα·αααα α’αααααΉααααααΆααααΎαααΆ αααΆαα αα ααΆαααααααααΌαααΆααααα½ααααα»αααααΎααΆααααΈαα αα·αααα’α ααΆααααααα αΎαααΎααααΈαααααααΌαααααααααααααααααΈαααΆαααα’ααΆαα α αΎαα’αααααΉααα½αααΎααααα»αααΏααααα
α
ααααβααΆαβαααΆααααααΆαβααααΌα α’αααβαααααΎβαα½ααΆααΈβααΌα
βααααΆβααΉαβα§αααααβααααααβααααΆβαααααβααα αα·αβααΆααΆβαααααβαααααα·ααΈ - ααΆαβαα»αβααααΆααβααΆαβα
αααα ααΆαβαααααΎαβααααααΆαβα’αΆα ααα α’αααα’αΆα
α’αΆαααααααα’αααΈα’ααααα
αααα»α
α
αΌααααααα’ααααα
ααααα·αααααΆαααααααα domain
ααΆαα½αααΉαα’αααααα https://testmace-quick-start.herokuapp.com
. αααααΆααααΏααααααΆα
αΆαααΆα
α
- ααΎαααααΆαααααααααΎααααΆαααααα αΎαα α»α ααΎααΌαααααΆααααΆαααΈααα·αααααα ααΆαααααΆαααΆαααΎ
- α α»α ααΎ + ααααααα’ααα
- αααα
αΌαααααα αα·ααααααα’ααα
αααα»αααααΈααααααΎα αααα’αααααααΆαα’αααααααααααΉαααΎααα ααΌα αααα
αααααααα α₯α‘αΌαααα αααααΆααααα ααΎαα’αΆα
ααααΎα’αααααααα
αααα»αααΌαα
α
ααααααα·ααααα»αααΆαα½αα αααα»αααααΈααααααΎαααΆαααααααΊααΆααααΆαα α
αΌα ΠΈ αααααΎα-αααααΆα. ααΎααααΈααααΎα’ααααααα»αααΆαα’ααααα α’αααααααΌαααααα ${<variable_name>}
. α§ααΆα ααα URL α
αΌαααααΌαααΆαααααααααα
ααΆ ${domain}/login
αααααααΆαααααΆαα αααααΎα-αααααΆα node url ααΉαααΎααα
ααΌα
${domain}/posts
.
α’αΆαααααα ααα»ααα αααααΆαααΉαααΆαααααααααΆααα DRY ααΎαααΆααααααα’ααααΆααΈαααΌαααααααα·α α
αααααΆαα»ααα·αα·ααααααααΆαα ααΆα’ααα
αααααΆαααΎααααα»ααα·ααΆαα’αααΈα’ααα α
αΌαααΎααααααΈααααααΆααααααααααα·α
α αα
αααααα αα
αααα»αααααΈααααΆαα
αΌαααααααααα ααΎαααα½αααΆαααΈαααΆαααΈαααααΌααααααΆαααααΆααα’αα»ααααΆα αααααΎαααΉαααααΌαααΆααααα»αααααΎααΆαααααααααΆααα ααααααααΆαα»ααααααΆαααααΆααααααα
ααΆα’αααα αααααΆααα αααααααα’αααααΉαααααΌαααΆααααααααα‘α»ααααααααΎαααΆαααααααΈα ααΎαααααΎααααααΆααα·ααααααααΆααααΏαααα -
ααΆααααΌα ααΌαα’αα»ααααααΆαααααΎαα»αα αΌαα αα αααα»αααααΆαα ααα α ααααΎα ααααΆααααΈααααααααααα·α ααΎαααααΆαααααΆαα αα·ααααα»ααααΊαα»αααα·αα (αααααααΌαααΆαααα α ααΆαααααααΎαααΌαα»αααααα»αααΆαααααΆα α¬αααα α»α ααΎαααΌαα»α ... ) ααααΎαααΎαααΆαα» ααααααα α’ααα. αααα’αααα½αααΉααααα αΆαααΆαα½αααΆαααΆααααααα
- ααααΌα - αααααααΆαα½αααα
ααααΎαααααΌαααΆααα (αααα»αααααΈααααααΎαααΆααΊααΆ
body.token
) - αααααβααΆβαααβαα αα α»ααααααβααα - ααΎαααααα’αααΈααααααα·ααα ααΆαααααααααααΌα (αααα»αααααΈααααααΎααααααΊααΆααααααα·αα·ααααααααΆ)
- αααααα’αααα - αααααα’αααααα αααααβααΆβαααβαα
αα
α»ααααααβααα ααΉαααααΌαααΆααααααΆαα»αα αααα»αααααΈααααααΎαααΆααΉαααΆα
token
- ααααΆαα - αα»ααααα»ααααΆαααα’αααααΉαααααΌαααΆααααααΎα αααααα’αααα. αααααααΎαααΎααααααα
αααα’αααααααΆααααα ααααΎααα ααΌα αααα
α₯α‘αΌααααααΆααααααααααααΆααααααΌαααΆαααααα·ααααα· α
αΌα α’αααααΆααααα token
ααΉαααααΌαααΆαα’αΆαααααααΆαα½αααΉααααααααααΈααΈααΆαααααΎαααα α αΎαα’ααααααααΉαααααΌαααΆααααααΆαα»ααα
αααα»α αααααα node αα·α α’ααα»αα
αααααααα ααΉαααΆααααααΆααααΌαα
α
α
ααΎααααΈα
αΌαααααΎα’αααααΆααααα α’αααααααΌαααααααΎ $dynamicVar
. α§ααΆα ααα ααΎααααΈα
αΌαααααΎαα·αα·ααααααααΆαααααΆααααααΆαα»α α’αααααααΌαα α
ααΌααααα ${$dynamicVar.token}
.
ααΎααααααΌααααααΆα’αα»ααααΆααα αααα»αααααΎ
αα
αααα»αααα αΆααα»α ααΎαααΆαααα½ααααααΆαααααΆααα’αα»ααααΆα α αΎαα’αααΈαααααΎαααααΌαααααΎααΊααααααααααααΆ Authorization
ααΆαα½αααΉαα’αααααα Bearer <tokenValue>
αα
αααα»αααααΎααΆααα’αααααααΆαααΆαααΆαα’αα»ααααΆα αα½αααΆαα αααααΎα-αααααΆα. ααΆααα·ααΈααΆα
αααΎαααΎααααΈααααΎααΆα
- α αααααααααΆαααααΆααααααα α αΎαααααααααααααΆα’αα»ααααΆααα ααααΎα αααΆααα’αΆααααααα αα·ααΈααΆααααααααααααΎαααΆα ααα»ααααααΆαααααΎααααΆααααααααΆααααΌαααΆααααααα ααααααααααΎαααααααα "ααΆαααααΎα αΎααααα αα" ααα»αααααα αα·ααααααα·αααααααΆααααΆαα’αα»ααααααααααΈαααααα
- ααααΎαα»αααΆα
ααΆαα’αα»ααααΆα . - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ααααααΆααααΆαααΎα
ααΆαααααΎαα·ααΈααΆαααααααΈααΈαα αΆααααΌα
ααΆααΆααααααα ααα»αααααα
αααα»αααα·ααααα’αααααααα αα·ααΈααΆααααααααααΊ ... αα·ααα½αα±ααα
αΆααα’αΆααααααα ααΆααΆααααααΎαααΆααα ααααααΆαα’αα»ααααΆαααΌαααααΊαααΆαααΉαα’αααααΈα§ααααααααααααα (αααααΈααΆααΎαααΆαααααααΌα
ααΆ
ααΏααα½ααααααΊααααααΆααααΆαααΎα! ααα»ααα ααααααΆααααΆαααΎαααααΌαααΆαααα½αααααααααααΆ HTTP αααααααΌαααΆααααααααα ααααΎααΆαααααΆαααΎα αα»αααααΆααααααΌαααΆααα·ααααΆαα αααΆααααΆααα αααααααΎαα»αααΆαααα α’αααα’αΆα α’αα»ααααααΆαα’αα»ααααΆαααααΆαααααα½α α¬ααααΆαααααααα αΆααααΆααααα½ααα αααα»αααααααΈαα αααααααΎαα»αααΆααααααΎααααΈαααααΌααααααΆαααααΆαααα αααα»αααααααΆα
ααΈαα»α ααΎαααΆααααααΆαα»ααααααΆαααααΆααααααααααααααααααααα
ααΆα’αααααΆααααα $dynamicVar.token
αα
ααααα·αααααΆααααααααα α’αααΈααααα
αααααΊααααΌαααααΎααΌα
ααΆααααααα
- αααααα
αααααΎαααααΆαααΎα
Authorization
ααΆαα½αααΉαα’ααααααBearer ${$dynamicVar.token}
αα ααααα·αααααΆααααααααα ααΎααααΈβααααΎβααΌα αααα αααα»αβα ααα»α βαααααΆααβααααααβααβααααΆαα α’αααβααααΌαβααΎαβαααα’ααβαααβααΆαβα αααααΎαβααααΆαααΎα (αααΌαα»α ααααααΆ αα αααα»αααΆαααααΆαααΆαααΎ) α αΎαααααααα αααααΎααααααααΌαααααΆα αααα’αααααααΆαααααααααααααΉαααΎααα ααΌα αααα
- αα·αααααααΆαααααΈααααΎα αΌαα αααα’αΆα αααααΆαα αα αααα αΌα ααΎααα·αααΆααααΆααααααΆαααααΆαααα α αΎαααΎαααΉαααα‘αΎαααΆααΆαα½αααααΎαααα ααΌα αααααα αααα»αα ααα»α αααααΆααα αΌαααααααΎαα αααα»αααααΆαα ααααααΆ αα αααα»αααααααα αααα αααααΈαααααααΆα’αα»ααααΆαα
α’ααα αΎαα α₯α‘αΌααααααααααΆα’αα»ααααΆαααΉαααααΌαααΆααααααααα ααααΎααΆααα’αααααααΆααΌαααααααααΆαααααααα ααΎααααααααααΆααα αΌαα ααΆααααααΆαα ααααΆααααΆαααα ααΎαααΆαααααααΈααα½α ααΆααα αΎα α αΎαα’αααΈαααααΎαααααΌαααααΎααΊα αΆααααααΎαααΆα α’αααα’αΆα ααααΎαααΆαααααααΈααααααααΎαααΎα ααα αα αααα»ααααΊαα»αααα·ααααααααααΆααααααααα
αα·αα·αααααΎαααΆαααααΉαααααΌαααααΆααααααΎααααααΆα
αα ααααΆααααΆαααα ααααααΈαααααααΎαα’αΆα α αΌαααΆα α αΎααααααααΎαααααΆα’αα»ααααΆα αααααΎααααααΆαα ααααααΆαααΆααααα ααΎαααααΌαααααΎα±ααααααΆααααΆ αααααΆααααααΆααααααΎαααααΈααΆααααααααααΉαααααΌαα αααα αΎαααΆααααΉαααΆα α’αααΈααααα ααααααααΊααααΌαααααΎααΌα ααΆααααααα
- ααααΎααααΎααΎααααΈααα½αααΆααααααΆαααΆαααααααααΆαα,
- αα·αα·αααβααΎαβααΆβαααααβαααβααΆαβααα½αβααΈβαααΆαααΈαβαααααΎβααααΌαβααΉαβαααααβαααβααΆαβααααΎβαααβαααααΎαβαααααΆα
ααΌααααα‘ααααΎαααα αΆαααααΌαα αααααΆααααααααααααααΆααααααΌαααΆααααααααα‘α»ααααααααΎαααΆαααααααΈα α’αααααααΌααααααΎαα’αααααΆααααα (αααα α
ααΆααΆ postId
) ααΈααααΆαα αααααΎα-αααααΆα αα
ααααα·αααααΆααααααααα ααΎαααΉαααΈααααααααΎααΆαα½α
α αΎα ααααΆααααααααα
ααααα αααααΆαα»ααα·αα·ααααααααΆαα
ααΆα’ααα. α’αααΈααααα
ααααααααΊαααααΎαααααΎαααΎααααΈααα½αααΆαααΆααααααΆααααααααΎααααααααΆαααααα ααΎααααΈααααΎααΌα
αααααΎααααααΎα RequestStep ααα½α-αααααΆα ααΆαα½αααΉααααΆαααΆααααααααΌα
ααΆααααααα
- ααααααααααΎα ααα½α
- URLα ${domain}/posts/${$dynamicVar.postId}
ααΎααααΈα’αα»ααααααα αΆαααΈααΈα ααΎαααααΌαααααΆαα Compare
ααΆαα’αα’αΆαααΆαα½αααααα·ααααα·αα equal
. ααΆααα·ααΈααΆα
αααΎαααΎααααΈαααααΎαααΆαα’αα’αΆαα
- αααα αααααΎαααααΆααα’αα’αΆααααααααΈαααΊαα»αααα·ααααααααΆααααααΎαα»αααα αΆαα αα βαααα»αβααααΆααβααΆαβα’αα’αΆαβαααβααΆαβαααααΎα ααααααβααΆαβα’αα’αΆαβααβααΆαβα αΆααβα’αΆαααααα α αΎαβαααααβαααα»αβααΆαα
- ααΏαα αααααΎαααααΆααααΆαα’αα’αΆααα½αααΆαα½αααΉαααΆαα’αα’αΆαααΈααΆαααααΎαααααααΆααααααΎαα»αααα αΆααααααααΎαααΊαα»αααα·αα
αααααααΎαα·ααΈααΈααΈαα αααααΆα’αααΈαααααΆααΉαααΎααα αααααΆααααααΈααααααΎαα
αααααΆααβα’αααβαααβαα·αβαααβαααβααΊβααΆβα’αααΈβαααβαααα»αβααΎαβα‘αΎαβ:
- ααααΎααΆαααααΎαα»ααα αααα»α node ααα½α-αααααΆα
- αα αααα»αααααΆαα ααα ααααΎα α α αααΊαα»αααα·αα α αΎαααααΎαααΎα αααααΎαααΆαα’αα’αΆα -> αααααααα -> ααααΎ
ααΌαα’αα’αααΆαα ααΎαααΆααααααΎαααΆαααααΎαααααααααΌαααααααΎα! ααΆααααααΆααααααα? α₯α‘αΌααααα’αααα’αΆα
ααααΎαααΆαααααααΈαααΆαααααα»αα αΎαααΈαααΆαααΉαααααααα α’αααΈβαααβαα
βαααβααΊβααααΌαβααααααβααΆβααααα·α
βα αΎαβααβααΆβα
αα title
αα
ααΆα’αααααΆα
ααααα‘ααα ααα»ααααβααΎαβααΉαβαα»αβααΆβαα»αβααΆβαα·α
αα
ααΆαβααααβ)
ααα ααααΈααααα·ααααΆα
αα αααα»αααΆαααααΆαααα ααΎαααΆααααααΎαααααΆααΈαααΌαααααααα½α α αΎααααα»αααααααα½αααΆααα·αα·αααααΎααααααααα·ααααα½αα ααα½αααααα·αααααααααΎαα ααΆααΆααα·αααΆαα ααΎααα·αααΆαααααΎααααΆαααα»αααΆαααΆααα’ααααααα α αΎααα αααα»αα’αααααααΆαααααα ααΎαααΉααααααααΌααα·αααααΆααααα’α·ααααααααααΆααααα TestMace α α αΆαααΎα!
PS αααααΆααβα’αααβαααβαααα·αβα
αααΆαβα
ααβααΆααβααα αΆαβααΆααβα’αα ααΎαβααΆαβααβαααβα
α·αααβααα’α
ααααα: www.habr.com