REST APIãè¨è¿°ããï¼Swaggerç´¹ä» #apijp
Web API Advent Calendar 2014ãåæ¥ã¯Swaggerãç´¹ä»ãã¾ãã
Swaggerã¯Reverbã«ãã£ã¦éçºããããRestfulãªAPIãè¨è¿°ããæ¨æºä»æ§ã§ããAPIãæ©æ¢°å¯èªãªå½¢ã§è¨è¿°ãããã¨ã¯ãããã¥ã¡ã³ãçæããã¼ã«éçºããã¾ãã¾ãªå½¢ã§ã®èªååã«é常ã«éè¦ã§ãã好ãå«ãã¯ã¨ããããSOAPã«ã¯WSDLã¨ããçµ±ä¸æ¨æºãããã¾ããããRESTã«ã¯æ¬è³ªçã«ãããã£ãæ¨æºããªããããé¡ä¼¼ãããã¾ãã¾ãªä»æ§ãéçºããã¦ãã¾ãããSwaggerã¯ãã®ä¸ã§ãæãææãªãã®ã®ä¸ã¤ã ã¨æãã¾ãã
1. ç¹å¾´
- è¨è¿°ã¯JSONã§ã·ã³ãã«ããããã å®ç¾©ã®ä¾ï¼
{ "swagger": "2.0", "info": { "version": "1.0.0", "title": "petstore" }, "paths": { "/users": { "get": { "responses": { "200": { "description": "Describe the 200 response in more detail" } } } } } }
Swaggerã®ãµã¤ãã«ã¯ãã©ã¦ã¶ä¸ã§è©¦ããSwagger Editorã¨ãããã®ãç¨æããã¦ãããå·¦å´ã«APIè¨è¿°ãæ¸ãã¨ãå³å´ã«çæãããããã¥ã¡ã³ãã®ãã¬ãã¥ã¼ãè¦ããã¨ãã§ãã¾ãï¼ä¸å³ï¼ããããå°ã試ãã¨Swaggerã®é°å²æ°ãããã¤ãããã¨æãã¾ããï¼APIã®è¨è¿°ã¯JSONã§ã¯ãªãYAMLãªã®ã§æ°ãã¤ãã¦ãã ããï¼
- ãªã¼ãã³ã§ãã³ãã¼ãå®è£ è¨èªãªã©ã«ä¾åããªããä»æ§ã¯GitHubで公開ããã¦ããApache 2.0ã©ã¤ã»ã³ã¹ã§å©ç¨ã§ãã¾ãã
- ã¨ã³ã·ã¹ãã ãå å®ãã³ãã¥ããã£ã«ããさまざまな言語に対応した多彩なツールやライブラリãä½ããã¦ãã¾ãã
- è³åã»ã¦ã¼ã¶ä¼æ¥ã®å¤ããSwagger 2.0ä»æ§ã¯ãªã³ã©ã¤ã³ãµã¼ãã¹ã®PayPalãGetty ImagesãAPIé¢é£ä¼æ¥ã®Apigeeã3scaleãå§ãã500è¿ãã®å¤§å°ä¼æ¥ã®è²¢ç®ã§ä½ããã¾ãããMicrosoftã米政府ã使ã£ã¦ãã¾ãã
2. ãã¼ã¸ã§ã³ã«ã¤ãã¦
2014/09/08ã«ææ°ã®Swagger 2.0がリリースããã¾ããã2.0ã¯ãããã¾ã§ã®1.x(ææ°ã¯1.2)ç³»ã¨ã¯äºææ§ããªãã®ã§æ³¨æãå¿ è¦ã§ãï¼ãã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ãã¯こちらï¼ã2.0ãã¾ã åºãã°ãããªã®ã§ãwebä¸ã§è¦ã¤ããæ¥æ¬èªã®Swaggerè¨äºã¯ã»ã¨ãã©1.xç³»ã®ãã®ã§ãã注æãã¦ãã ããã
3. Swagger対å¿ã®ä¾¿å©ãã¼ã«
- Postman
- ã¿ããªå¤§å¥½ãAPIãã¹ãã¯ã©ã¤ã¢ã³ãã®å®çªãPostmanã«ãSwaggerã¤ã³ãã¼ãæ©è½ãããã¾ãï¼Swagger 1.2対å¿ï¼ã
- Mockable
- REST/SOAPãªã¢ãã¯ãµã¼ããç°¡åã«ç«ã¡ä¸ããããæå¾ ã®ãµã¼ãã¹ãMockableã§ãSwaggerã¤ã³ãã¼ãããµãã¼ãäºå®ã§ãï¼ç¾æç¹ã§ã¯æªå®è£ ï¼ã
- Apigee 127
- APIã¢ãã«å®ç¾©ããã¼ã¹ã«ãNode.jsã§ã®å®è£ ã¹ã±ã«ãã³ãçæãããããã£ãã·ã¥ãã¬ã¼ããªããããOAuthãªã©ã®API管çæ©è½ãç°¡åã«å®ç¾ã§ãããªã¼ãã³ã½ã¼ã¹ããã¸ã§ã¯ããApigee 127ã§ãSwagger 2.0ãåºç¤æè¡ã¨ãã¦æ¡ç¨ããã¦ãã¾ãã
ã¾ã¨ã
Swaggerã¯ç¾å¨ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã®ç§»è¡æã«ããããããã¼ã«ããµãã¼ãã«è¥å¹²ã®æ··ä¹±ã¯ããã¾ããã2.0ã¸ã®ç§»è¡å®äºå¾ãã¨ã¦ã楽ãã¿ãªæè¡ã§ããWeb API好ããªãã°ä»ã®ãã¡ã«è©¦ãã¦ã¿ã価å¤ã¯ããã¾ããï¼