Dear Huabing, Thanks for bring this topic across the community and its very helpful to bring the consistency in REST API in terms of URI pattern, response formats, versioning, etc. It also helps to make the integration points of ONAP smoother whether its internal/external.
Btw, I would like to bring couple of things related to this topic here, let me know your feedback: 1. We tried to solve the similar issues in Open-O, by the project name called swagger-sdk. During the build time, it helps to generate swagger.json and java client sdk and during the run-time, it helps to provide the swagger.json at the given URI. More details are available in the wiki. https://wiki.open-o.org/display/CLIEN/Swagger+SDK+for+Open-O It could be leveraged into ONAP. 2. Should we form an API committee to govern this task, similar to other communities like OpenStack. Thanks. Regards Kanagaraj M *************************************************************************************** 本邮件及其附件含有华为公司的保密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制、或散发)本邮件中的信息。如果您错收了本邮件,请您立即电话或邮件通知发件人并删除本邮件!************************************************************************************** *************************************************************************************** This e-mail and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it! *************************************************************************************** From: [email protected] [mailto:[email protected]] Sent: Tuesday, July 11, 2017 8:40 AM To: [email protected]; [email protected]; [email protected]; Kanagaraj Manickam; [email protected]; [email protected]; [email protected]; [email protected]; Yunxia Chen; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; denghui (L); [email protected]; [email protected]; [email protected]; [email protected]; Gildas Lanilis; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; Seshu m Cc: [email protected] Subject: Solicit PTL feedback for ONAP RESTful API Design Specification //Fw:[onap-tsc][ptls] proposed topic for the next week's PTL meeting Hi Gregory and PTLs, At the this week's PTL meeting, I get the action item to contact documentation team and PTLs to continues the RESTFul API Design discussion. http://ircbot.wl.linuxfoundation.org/meetings/onap-meeting/2017/onap-meeting.2017-07-10-13.22.html The reasoning behind this: API is very important because it's hard to make significant changes to your API once it's released, so we want to get as much right as possible at first. Currently, most of the projects have already passed their M1 review, the Release Planning. And developers start to write codes.I went through some of the existing API documents of a bunch of projects, it seems that there's no consistent way for Restful API design and some of the API definition are not very appropriate. Because it's a cross-project issue, I proposed this topic at this week's PTL meeting, I'd like to suggest that we figure out a unified approach across ONAP projects for the Restful API design before we jump into the coding work. I came up with a draft as the start point for discussion on this wiki page: https://wiki.onap.org/display/DW/RESTful+API+Design+Specification+for+ONAP .These items in this pages are based on some best practices in the industry, such as the URL, resource hierarchy, the versioning, the use of HTTP method, API documentation Specification, etc. Please discuss the specification within your team. If anything needs to be modified or added, just send feedback here by mail or comment on the wiki page. I hope we could get a revised and improved version ready for next week's PTL meeting. Thank you for your attention to this matter. Huabing Original Mail Sender: <[email protected]<mailto:[email protected]>>; To: <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>;zhaohuabing10201488; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>;FuGuangRong10144542; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; <[email protected]<mailto:[email protected]>>; CC: <[email protected]<mailto:[email protected]>>; Date: 2017/07/07 15:02 Subject: [onap-tsc][ptls] proposed topic for the next week's PTL meeting Dear PTLs, Maybe we could discuss this topic at the next week's PTL meeting. It's important and covers almost all the projects which will produce APIs. https://wiki.onap.org/display/DW/RESTful+API+Design+Specification+for+ONAP Thanks, Huabing ---------- Forwarded message --------- Cc: <[email protected]<mailto:[email protected]>> Hi Pam, After taking a look at the other best practices on this page. I realized that this is more like a specification than best practices because we'd like to enforce them to all the ONAP components. I moved this page to https://wiki.onap.org/display/DW/RESTful+API+Design+Specification+for+ONAP Agree that some of the projects may not redesign the existing API for back-compatible reason, We can maintain the old version while designing the new version in parallel. It's possible that both the old and new version can be provided to the ONAP clients. Thanks, Huabing Original Mail Sender: <[email protected]<mailto:[email protected]>>; To: zhaohuabing10201488; <[email protected]<mailto:[email protected]>>; Date: 2017/06/22 20:09 Subject: Re: [onap-discuss] RESTful API Design Best Practices for ONAPMicroservices Huabing, Thanks, I agree and feel this is very valuable. There is no formal best practices for RESTful API, albeit a few websites that do a fairly good job at making suggestions. I think this detailed information should probably be in the section located here: https://wiki.onap.org/display/DW/Developer+Best+Practices Gildas has been including such details as part of his presentations, and its part of the checklist template. We would perhaps also need to be aware for R1 that some projects may not be able to re-design quite yet. They may have to support their current API version until an appropriate time to deprecate it in lieu of new API conforming to standards. Thanks, Pam From: <[email protected]<mailto:[email protected]>> on behalf of "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Thursday, June 22, 2017 at 7:14 AM To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: [onap-discuss] RESTful API Design Best Practices for ONAP Microservices Dear ONAPer, Most of the projects have already been approved in Beijing meeting or will be approved in this week's TSC meeting, we're starting the development phase of release 1 right now. I went through the API documents of a bunch of existing projects, it seems to me that there's no consistent approach for Restful API design and some of the APIs are not very appropriate. So I‘d like to suggest that we could figure out a unified approach across ONAP projects for the Restful API design before jumping into the coding job. I have worked out a draft as the start point for discussion on this wiki page : https://wiki.onap.org/display/DW/RESTful+API+Design+Best+Practices<https://urldefense.proofpoint.com/v2/url?u=https-3A__wiki.onap.org_display_DW_RESTful-2BAPI-2BDesign-2BBest-2BPractices&d=DwMGaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=jwTiArcEj6aUX0HjV0M3dT12gUtk7rC07xpgpVZkS_4&m=0YNbxUNtVvCKpTNvgW3_BNoCLCj_MRe742y6dx4OBmU&s=_ZowHTJvm1zMQejvK18VIV9y5yd9QptiXikmoUw-5P4&e=> I hope we could discuss in the community and reach consensus in one or two weeks. Then I'd like to propose to TSC using it as a guideline for all the projects. What do you think about it? Please feel free to share your idea in the comments of the wiki page so we can improve this draft quickly. Thanks and Regards, Huabing _______________________________________________ onap-discuss mailing list [email protected]<mailto:[email protected]> https://lists.onap.org/mailman/listinfo/onap-discuss
_______________________________________________ ONAP-TSC mailing list [email protected] https://lists.onap.org/mailman/listinfo/onap-tsc
