API Documentation Guidelines

Slides:



Advertisements
Similar presentations
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Advertisements

SOA & BPM Business Architecture, SOA & BPM Learn about SOA and Business Process Management (BPM) Learn how to build process diagrams.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
The Design Discipline.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Chapter Intranet Agents. Chapter Background Intranet: an internal corporate network based on Internet technology. Typically, an intranet can.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
© 2008 IBM Corporation ® IBM Cognos Business Viewpoint Miguel Garcia - Solutions Architect.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
SE: CHAPTER 7 Writing The Program
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
© 2011 IBM Corporation ® Managing Decision services in WebSphere Message Broker using WebSphere ILOG JRules. Amar Shah Mallanagouda Patil December 2011.
Portlet Development Konrad Rokicki (SAIC) Manav Kher (SemanticBits) Joshua Phillips (SemanticBits) Arch/VCDE F2F November 28, 2008.
Tools and technology usage in PFMS application lifecycle management process LEPL Financial-Analytical Service, Ministry of Finance October, 2015 Dimitri.
Guide for Excel Integration Fusion CRM ADFdi
The Holmes Platform and Applications
J2EE Platform Overview (Application Architecture)
Open-O Integration Project Introduction
Swagger-SDK ONAP Paris Developer Event 25 –
Information Systems and Network Engineering Laboratory II
API (Application Program Interface)
Modern Systems Analysis and Design Third Edition
Better RESTFul API – Best Practices
Scaling Your API Development Workflow
Sabri Kızanlık Ural Emekçi
Swagger-SDK CLI PTL ONAP Paris Developer Event 25 –
Francis Bordeleau Chairman, Papyrus IC May 11th, 2016
Documentation Guidelines
Modern Systems Analysis and Design Third Edition
Unix Provisioning Manager
Distribution and components
EIN 6133 Enterprise Engineering
Chapter 18 MobileApp Design
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Dev Test on Windows Azure Solution in a Box
The Re3gistry software and the INSPIRE Registry
Tools of Software Development
Machine Learning Platform Life-Cycle Management
ETSI Multi-access Edge Computing:
Modern Systems Analysis and Design Third Edition
Simplified Development Toolkit
Chapter 2 – Software Processes
Modern Systems Analysis and Design Third Edition
$, $$, $$$ API testing Edition
Testing RESTful Web APIs
Enterprise Program Management Office
Chapter 7 –Implementation Issues
Touchstone Testing Platform
HingX Project Overview
SharePoint 2019 Overview and Use SPFx Extensions
Agile testing for web API with Postman
From Development to Production: Optimizing for Continuous Delivery
Configuration management suite
From Development to Production: Optimizing for Continuous Delivery
Remedy Integration Strategy Leverage the power of the industry’s leading service management solution via open APIs February 2018.
Modern Systems Analysis and Design Third Edition
#01# ASP.NET Core Overview Design by: TEDU Trainer: Bach Ngoc Toan
Session Abstract This session will provide an overview of the latest improvements and enhancements made to the Ed-Fi ODS/API in 2016, as well as a preview.
Contract Management Software 100% Cloud-Based ContraxAware provides you with a deep set of easy to use contract management features.
Contract Management Software from ContraxAware Simplify Your Contract Management Process.
ONAP Architecture Principle Review
SSDT, Docker, and (Azure) DevOps
Developing ONAP API Documentation
API Working Group September 26, 2019 Includes notes from meeting.
Presentation transcript:

API Documentation Guidelines 2-02-2018

ONAP API Documentation Goals 1. Consistent format & structure Clear overview of each API with primary object(s) Standard set of attributes & definitions (e.g. Name, location, Type, Description) 2. ReadTheDocs as central repository (nothing on wiki) Swagger.json Postman collections HTTP Headers (params/values) 3. Versioning Based on a separate numbering system or ONAP practice; not Component versioning Developers can access to all available versions (old, current) API documentation different than API versioning Availability: Usually in the URL Usually in the swagger specification Sometimes via API request Usually in the word/pdf/html documentation

API Documentation Options

ONAP API Documentation Guidelines Highest Priority APIs offered to many users APIs permanent / core to the platform Other Lower Priority APIs offered to only two components (i.e. pairwise) APIs still being tested / likely to be evolved or replaced Adoption Timeline By Beijing Release? Each project on their own?

Option 1 : TM Forum approach

Option 2 : Openstack approach

Option 3 : SwaggerHub

ReadTheDocs Must be Central Reference https://onap.readthedocs.io/en/latest/guides/onap-developer/apiref/index.html

Where is current API Documentation

Current API Documentation on ReadTheDocs

Current API Documentation on ReadTheDocs

Current API Documentation on the wiki

SwaggerHub / OpenAPI Background

OpenAPI Background OpenAPI Specification –OAI/S (fka swagger spec) helps define the API’s contract for API development teams and its end consumers sets clear expectations for the experience of integrating with the API language agnostic human-readable format for describing API operations “The Open API Initiative (OAI) was created by a consortium of forward-looking industry experts who recognize the immense value of standardizing on how REST APIs are described. As an open governance structure under the Linux Foundation, the OAI is focused on creating, evolving and promoting a vendor neutral description format. SmartBear Software is donating the Swagger Specification directly to the OAI as the basis of this Open Specification.”  Provides API description format for APIs regardless of the language they are developed and implemented in. https://www.openapis.org/about

Swaggerhub Background Swaggerhub Components provides the open source framework toolset for OAS implementation Swagger UI – human readable version provides interaction with API without coding Swagger Editor – document and validate API according to OAS Swaggerhub – team collaboration, maintains secure version repository, integration to other dev and management tools Swagger Codegen – generate client/server sample code in 30+ programming languages “SwaggerHub is an integrated API Development platform, built for teams, that brings the core capabilities of the Swagger framework to design, build, document and deploy APIs. SwaggerHub enables development teams to collaborate and coordinate the entire lifecycle of an API with the flexibility to integrate with the toolset of your choice.” Purpose specific tooling for API Lifecycle Management http://app.swaggerhub.com

Why SwaggerHub? Cloud-Based Editor with Advanced Design Capabilities Write and edit your Swagger definition in a cloud-based editor with built-in style validation to reduce errors, and auto-mocking that lets you preview how your API will behave and validate design decisions without writing any code.  Integrated Documentation Workflow Write your Swagger definition, work with your documentation, and generate code and client SDKs in one intuitive interface, without the need to work across multiple tools. SwaggerHub keeps everything in sync and seamlessly integrates with source control and API management platforms. Secure Cloud-Hosting Store all of your API definitions, and associated documentation, in a platform built for APIs. SwaggerHub auto-saves your work throughout the design process and provides a central place to host your documentation, without the need to setup a server. Privacy and Access Control Control who can access your APIs, and keep sensitive information secure with SwaggerHub’s built-in privacy controls. Use access controls when designing new APIs, or documenting an existing Swagger definition. Versioning and Publishing Update and iterate continuously, with the ability to manage multiple versions of your API in SwaggerHub. New versions copy existing syntax from the last updated version so you’ll never have to start building from scratch. Collaboration & Team Management SwaggerHub provides a central platform for teams to collaborate throughout the design and documentation of your API. Securely share your APIs with internal and external contributors, and track issues in real-time with comments in the SwaggerHub editor. SwaggerHub will automatically notify collaborators whenever a change is made the definition. Sync with Source Control and API Management Platforms Manage the entire lifecycle of your API from a central platform, which syncs the different versions of your API definitions with source control tools and API management platforms — allowing you to update your Swagger definition and automatically update your documentation, server code, and deployment. Reuse Common Models Store all your common components in Domains, which can then referenced from all your APIs, standardizing work and saving time and effort.

Swaggerhub pre-requisites Identify team –API clients, API providers, API governance Sign up for team or enterprise plan https://app.swaggerhub.com/prices?_ga=2.71334490.893424181.1517237482- 936456995.1511884392 Establish process PayPal example: Issue guidelines Security Naming of resource, parameters, responses Error handling Data format handling Versioning Zalando example: http://zalando.github.io/restful-api-guidelines/index.html#general- guidelines

Swaggerhub –getting started Setup environment Define Organizations and Teams Create APIs under Organizations Invite Collaborators Training Create, import, document, version, fork, merge API Sync API definitions with GitHub, GitLab, Bitbucket Mock API Generate server stub and client SDK Details for above steps: https://app.swaggerhub.com/help/tutorials/getting-started

Swaggerhub workflow –API 1st approach Diagram from: https://www.codeguru.com/cpp/frameworks/the-value-of-specification-first-development-using-swagger.html

Swaggerhub workflow –Code 1st approach https://blog.philipphauer.de/enriching-restful-services-swagger/