The document discusses Swagger, which is a specification and set of tools for describing and documenting REST APIs. It describes Swagger as both an API documentation framework and a specification that can help produce, consume, and visualize APIs. The document outlines different options for creating Swagger documentation, such as generating JSON from code annotations, manually writing JSON, or generating documentation at runtime from annotations. It also provides an overview of several Swagger tools and components and discusses when Swagger may or may not be suitable for a given situation.
Learn what is coming with the first major revision to the world’s most successful API framework. Tony Tam, the founder of Swagger, discusses the new workflows, tooling, and a more descriptive specification that Swagger 2.0 brings.
Writer APIs in Java faster with Swagger InflectorTony Tam
Swagger provides a clean contract for your REST API. Swagger Inflector is a project which uses Swagger as the language of the API, automatically wiring REST endpoints directly to controllers in the Jersey 2.x framework. By doing so, the specification and code are always up to date, removing potentially error-prone redundant code and bringing development on the JDK up to speed with typeless languages.
This talk started with a quick description of APIs and the importance of good documentation. We then introduced Swagger, talked about how/why it helps in solving this process. Finally, we talked about a number of Node.js tools we've built to help make API design, API development and better overall APIs using Node.js and Swagger.
Learn what is coming with the first major revision to the world’s most successful API framework. Tony Tam, the founder of Swagger, discusses the new workflows, tooling, and a more descriptive specification that Swagger 2.0 brings.
Writer APIs in Java faster with Swagger InflectorTony Tam
Swagger provides a clean contract for your REST API. Swagger Inflector is a project which uses Swagger as the language of the API, automatically wiring REST endpoints directly to controllers in the Jersey 2.x framework. By doing so, the specification and code are always up to date, removing potentially error-prone redundant code and bringing development on the JDK up to speed with typeless languages.
This talk started with a quick description of APIs and the importance of good documentation. We then introduced Swagger, talked about how/why it helps in solving this process. Finally, we talked about a number of Node.js tools we've built to help make API design, API development and better overall APIs using Node.js and Swagger.
Swagger APIs for Humans and Robots (Gluecon)Tony Tam
Presentation to Gluecon 2014 about Swagger for API development and adoption of services. Reverb also announced the Swagger 2.0 Working Group, with Apigee as a founding member
Crystal clear service interfaces w/ Swagger/OpenAPIScott Triglia
Learn how to better communicate between Python services. We'll use simple-to-follow examples and go from a service with undocumented endpoints to one which has full docs and validation on requests. Learn how to use Swagger tooling for python, including the bravado (client) and pyramid_swagger (server) libraries. In the end, you'll (hopefully!) find nirvana and make the machines do all the hard work for you.
Swagger is a description standard of REST API. I will show you features of Swagger UI, and how to make it out with grape and grape-swagger. At the end introduces PostgREST and emphasizes DRY principle.
API Developer Experience: Why it Matters, and How Documenting Your API with S...SmartBear
Whether you’re new to Swagger, or have already been using the framework for API design, there’s a good chance you still have questions about how to improve your API documentation. Creating API documentation your consumers will love can take some work, but the investment will have a significant payoff in the form of a great developer experience, easier implementation, and improved adoption of your API.
This presentation covers good developer experience in detail, focusing on why and how to provide an optimal experience for developers using your API. We will also cover how Swagger has changed the API design and documentation landscape, and finally show some good practices for API documentation using Swagger in SwaggerHub’s integrated API development platform.
Things to expect in this webinar:
What is Developer Experience (DX)?
What does it mean for an API to have good DX?
API documentation in the context of good DX?
An introduction to the Swagger framework
Designing APIs from a usability perspective using Swagger and SwaggerHub
Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services. The overarching goal of Swagger is to enable client and documentation systems to update at the same pace as the server. The documentation of methods, parameters, and models are tightly integrated into the server code, allowing APIs to always stay in sync. With Swagger, deploying managing, and using powerful APIs has never been easier.
Get Your Node.js API Swaggering with OpenAPI SpecAdam Paxton
An overview of OpenAPI Spec, fka Swagger, as well as an example of how to use it when building a Node.js REST API.
Presented at Connect.tech Atlanta, September 21, 2017.
Swagger is an open source software framework backed by
a large ecosystem of tools that helps developers
design, build, document and consume RESTful Web
services.
Presented at JavaOne 2016.
Using Swagger has become the most popular way to describe REST APIs across the web, enabling people to more quickly understand and communicate with services, with developer-friendly documentation and rich, autogenerated client SDKs. As the API has moved more into being one of the most important aspects of a service, the Swagger definition has become increasingly more important and essential to the design phase. This presentation explains how the Swagger definition can be used to streamline the iteration process and enable client and server engineers to develop concurrently with complex APIs.
Swagger is a simple yet powerful representation of your RESTful API. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability.
Supporting slide deck for Tony Tam's presentation at I Love APIs 2015. Covers the new swagger project, Swagger Inflector, which allows an API-first definition for REST APIs.
Advancing Your API Strategy in an Infrastructure WorldPronovix
You can lead a horse to water, but you can’t make it drink. This is an accurate summary of what my initial journey of evangelizing API usage was like. In this talk I will take the audience through our journey, what worked, what didn’t work and what we learned along the way.
Swagger APIs for Humans and Robots (Gluecon)Tony Tam
Presentation to Gluecon 2014 about Swagger for API development and adoption of services. Reverb also announced the Swagger 2.0 Working Group, with Apigee as a founding member
Crystal clear service interfaces w/ Swagger/OpenAPIScott Triglia
Learn how to better communicate between Python services. We'll use simple-to-follow examples and go from a service with undocumented endpoints to one which has full docs and validation on requests. Learn how to use Swagger tooling for python, including the bravado (client) and pyramid_swagger (server) libraries. In the end, you'll (hopefully!) find nirvana and make the machines do all the hard work for you.
Swagger is a description standard of REST API. I will show you features of Swagger UI, and how to make it out with grape and grape-swagger. At the end introduces PostgREST and emphasizes DRY principle.
API Developer Experience: Why it Matters, and How Documenting Your API with S...SmartBear
Whether you’re new to Swagger, or have already been using the framework for API design, there’s a good chance you still have questions about how to improve your API documentation. Creating API documentation your consumers will love can take some work, but the investment will have a significant payoff in the form of a great developer experience, easier implementation, and improved adoption of your API.
This presentation covers good developer experience in detail, focusing on why and how to provide an optimal experience for developers using your API. We will also cover how Swagger has changed the API design and documentation landscape, and finally show some good practices for API documentation using Swagger in SwaggerHub’s integrated API development platform.
Things to expect in this webinar:
What is Developer Experience (DX)?
What does it mean for an API to have good DX?
API documentation in the context of good DX?
An introduction to the Swagger framework
Designing APIs from a usability perspective using Swagger and SwaggerHub
Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services. The overarching goal of Swagger is to enable client and documentation systems to update at the same pace as the server. The documentation of methods, parameters, and models are tightly integrated into the server code, allowing APIs to always stay in sync. With Swagger, deploying managing, and using powerful APIs has never been easier.
Get Your Node.js API Swaggering with OpenAPI SpecAdam Paxton
An overview of OpenAPI Spec, fka Swagger, as well as an example of how to use it when building a Node.js REST API.
Presented at Connect.tech Atlanta, September 21, 2017.
Swagger is an open source software framework backed by
a large ecosystem of tools that helps developers
design, build, document and consume RESTful Web
services.
Presented at JavaOne 2016.
Using Swagger has become the most popular way to describe REST APIs across the web, enabling people to more quickly understand and communicate with services, with developer-friendly documentation and rich, autogenerated client SDKs. As the API has moved more into being one of the most important aspects of a service, the Swagger definition has become increasingly more important and essential to the design phase. This presentation explains how the Swagger definition can be used to streamline the iteration process and enable client and server engineers to develop concurrently with complex APIs.
Swagger is a simple yet powerful representation of your RESTful API. With the largest ecosystem of API tooling on the planet, thousands of developers are supporting Swagger in almost every modern programming language and deployment environment. With a Swagger-enabled API, you get interactive documentation, client SDK generation and discoverability.
Supporting slide deck for Tony Tam's presentation at I Love APIs 2015. Covers the new swagger project, Swagger Inflector, which allows an API-first definition for REST APIs.
Advancing Your API Strategy in an Infrastructure WorldPronovix
You can lead a horse to water, but you can’t make it drink. This is an accurate summary of what my initial journey of evangelizing API usage was like. In this talk I will take the audience through our journey, what worked, what didn’t work and what we learned along the way.
How to generate a REST CXF3 application from Swagger ApacheConEU 2016johannes_fiala
This presentation shows you how you can generate server stubs from a Swagger contract,
configure the jaxrs-cxf language to enable Spring-configuration, Spring-Boot integration + tests, automatic BeanValidation on the server side,
generate client code for java and javascript, use/integrate swagger-ui, use swagger2markup
use custom Swagger-Codegen templates + how you can create your own language implementation.
In this session, Massimo will go through the Swagger specification and some open source tools built on top of Swagger. This includes Swagger editors and how they can be used to create our API stubs,
the Swashbuckle tool to auto-generate swagger.json, to keep it in sync with the server code and to make it discoverable. Finally he will demonstrate the Swagger integration in the API Management space (Azure API Management and Sentinet).
Join us for an overview of REST, the Force.com REST API, and learn how to use that REST API with Swagger, a language-agnostic framework for describing, producing, consuming, and visualizing RESTful web services. You'll learn how Swagger can generate a Spring MVC Controller to consume the Force.com REST API, and keep client and documentation systems in sync with the server.
Automating your build process with Continuous Integration is certainly a great idea, but why stop there? Why not go the whole nine yards and automate the deployment process as well? Staging and production deployments are typically more complicated and more involved than a simple development deployment, but doing them by hand can be time-consuming, tricky and error-prone. Indeed, turning your staging and production deployments into a one-click affair has a lot going for it.
Create and Manage APIs with API Connect, Swagger and BluemixDev_Events
Presented by - Raghavan “Rags” Srinivas, Architect, IBM
Enabling other developers and organizations to use your APIs through their own applications and services provides a compelling system for innovation and monetization. The Swagger spec (v2.0), recently donated to the Open API Initiative (OAI), is part of an open source project for better creation and documentation of APIs. Companies are empowering developers via these initiatives to leverage the data and build apps around it. This hands-on session helps you get started with creating APIs for consumption by developers in a well-documented, secure, and easy-to-manage form.
Forge - DevCon 2016: Implementing Rich Applications in the BrowserAutodesk
Sebastian Dunkel, Autodesk
Cloud based web applications running in the browser have fundamental advantages over their desktop based siblings: They run on any device and are not tied to a certain operating system. The transition to web applications can solve many of the deployment problems and facilitates effortless real-time collaboration in a connected world.
However, implementing rich browser applications is challenging. Besides general technical limitations, leveraging existing technology is far from trivial. In this presentation we will discuss these and other challenges based on selected browser-based applications developed at Autodesk. Moreover, we will show how Forge technology can help to accelerate application development and improve the development experience.
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft GraphSébastien Levert
Every developer hears about AngularJS and all the magic it does for you applications. In order to kickstart you AngularJS journey, this session is an introduction to the AngularJS concepts applied to any Office 365 development. Different workloads will be targeted (Mail, Calendar, Files) and the Office 365 API will be our main datasource. We will also cover SharePoint Online specific data access (Office 365 API, REST, CSOM and Search) to meet your current development needs.
The 3 key takeaways of this session are :
You will understand the basics of the AngularJS framework
You will learn how to communicate withthe Office 365 through AngularJS
You will be able to apply those new skills in your next project
Radu vunvulea building and testing windows 8 metro style applications using ...Radu Vunvulea
In this session you will discover how you can develop applications that use components written in different programming language (C++, C# and JavaScript). A brief introduction in WinRT Components and testing tools will also be presented.
As software teams transition to cloud-based architectures and adopt more agile processes, the tools they need to support their development cycles will change. In this session, we'll take you through the transition that Amazon made to a service-oriented architecture over a decade ago. We will share the lessons we learned, the processes we adopted, and the tools we built to increase both our agility and reliability. We will also introduce you to AWS CodeCommit, AWS CodePipeline, and AWS CodeDeploy, three new services born out of Amazon's internal DevOps experience.
Presented by: Mohammad Nofal, Technical Account Manager, Amazon Web Services
Customer Guest: Micha Hernandez van Leuffen, Founder and CEO, Wercker
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachPROIDEA
JAVA EVERYWHERE AGAIN—WITH DUKESCRIPT
For a long time, Java was perfect for creating cross-platform applications, but the advent of iPhone, iPad, and Android devices changed everything, resulting in a totally fragmented world. Catering to all these platform is troublesome and expensive. That’s why DukeScript was created: to make it easy to create cross-platform Java applications again. The goal of this hands-on lab is to create a cross-platform application from scratch that will run on iOS, Android, desktop, browser, and embedded devices such as the Raspberry Pi. You’ll learn about the Model-View-ViewModel (MVVM) architecture, which enables you to write and test business code totally independently of the view, and, finally, you’ll see it combined with a view to complete a working application.
IMPORTANT
Before conference, please follow the steps to prepare for the session:
- perform the Maven repository initialization by creating the archetype and building it as
described at DukeScript website
- also download NetBeans IDE (either latest beta or at least 8.0.2)
- Installing Android SDK rev. 19 or bringing own Mac Book with XCode installed can be also found beneficial
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
Today’s cutting-edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes that Amazon’s engineers use to practice DevOps and discuss how you can bring these processes to your company by using a new set of AWS tools (AWS CodePipeline and AWS CodeDeploy). These services were inspired by Amazon's own internal developer tools and DevOps culture.
Introduction to Indigo.Design App BuilderJason Beres
Indigo.Design App Builder is a brand-new cloud-based WYSIWYG drag & drop tool that helps teams design and build complete business apps faster than ever before. Part of Indigo.Design, the world’s only Digital Product Design Platform with a complete Design to Code solution.
Building the Developer Experience Right - May The Force of API Be With YouNabayan Roy
Today, we are living in an API economy, if I can say so. Everything is slowly moving into a new paradigm, which is service. Product companies are slowly, but surely gearing up to this change. And with the advent of cloud computing and its rapid adoption; it’s an open war and APIs are your Lightsabers in this war. APIs have become the most attractive intellectual and digital asset—the growth and penetration of the Web and the gradual shift in mindset of companies from being product-centric to being service-oriented has also seen an increase in the API traffic.
Getting Started with Coded UI Testing: Building Your First Automated TestImaginet
This training seminar demonstrates how to record tests run against various types of application user interfaces using Microsoft Visual Studio’s Coded UI Tests and how to replay them at any time. Additionally, we explore how to embed validations, either simple or elaborate, to ensure your application is producing the correct results. Learn how to improve the quality of your applications by having a repeatable set of Microsoft Coded UI Tests available to ensure defects don’t go unnoticed!
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Titles I thought about using:
Help! My developers are using Swagger. Now what?
What the heck is Swagger and why do I care?
And you thought Swagger was an API doc tool...
About me
With IBM for 9 years, IBM Watson for 2. Watson was formed from the technology that was showcased on Jeopardy! In 2011. Before that, 10 years with tech startups. One right here: fourthchannel. Oh, and spent my elementary school years here back when Woody Hayes was in charge of the city. I really wanted to be the drum major for the marching band. If this doesn't make sense, I can't explain.
Watson is focused on APIs and services. Over a dozen Watson services in the Watson Developer Cloud in the last year. The focus has driven some work around how we deliver the docs and what those docs are. No Eclipse info center or knowledge center.
Me and Swagger: I learned about Swagger from one of my development teams. We were surveying how to provide an internal API explorer. We had hundreds of undocumented APIs and the dev team was sick of answering questions. We picked Swagger and I jumped on board.
We retrofitted Swagger in those multi hundred APIs and I learned a lot about the process.
Focus: In this presentation, I focus on the output of describing a REST API with Swagger. I'm not discussing various developer-centric topics, such as hooking Swagger up to your existing code, running Swagger, or generating servers or clients. What might be helpful to know about Swagger as an information developer so you can discuss it and use it.
If you have seen Swagger, you're probably familiar with this look.
And this IS Swagger to many people.
But Swagger Swagger is more than this. This is the Swagger UI, the standard visualization of an API described by Swagger.
And this is what most people think of when they hear Swagger.
It's true that Swagger did start as a way for one company to help document their APIs. But Swagger is more than this visualization.
Swagger is a definition language. A standard to help describe REST APIs for both humans and machines to understand.
We're looking at a screenshot of the root specification for Swagger. The rules that Swagger tools understand.
As information developers or content folks, we are often most interested in generating documentation and visualizations of the API so that humans can understand it.
But because this has a structure can be used to validate a description, Swagger can be used throughout many parts of the lifecycle of a REST API.
But there's more!
Besides the Swagger UI, which you might see here, there are other tools that follow the spec and can be used with Swagger.
Tools to help integrating swagger with code, and to help design and visualize APIs at the same time.
And there are more tools to help create clients and servers
Node express is now called Swagger node: GitHub: "tools for designing and building Swagger-compliant APIs entirely in Node.js."
Parser: API Evangelist: "Parses a machine readable API definition and makes ready for use in specific language, structure, or platform."
And Swagger has an active community on Google groups, an IRC channel, StackOverflow, and GitHub. The community answers questions from both developers and others. And they do suffer fools.
You can write APIs in many languages and use in many frameworks. Swagger has support for many of them
So, Swagger is both a technology and a methodology. The methodology is precise and consistent and allows the technology to work with it, often in automated ways (for example, creating clients and servers, supporting API explorers).
Supports both bottom-up and top-down approaches. Can be part of much of the lifecycle of an API.
Top down: help design and api, then create the code as well as produce documentation.
Bottom up: Take existing API and add swagger annotations or create Swagger files separately.
Lifecycle support: Design, Code, Text, Document.
specific ways to think about putting this together for your set of APIs.
Three things to think about:
What kind of output do you want? Swagger UI runs online
How are you going to get that Swagger file?
And when to you generate that file?
First up: what kind of output? We've seen the swagger UI. But what do you do when you want to hand the docs to someone who doesn't have access to the UI? What if you want to print?
Then you have to look at other tools – some that come from Swagger and some from the community. Point is that creating these docs takes some additional work.
Swagger codegen: A template-driven engine to generate client code in different languages by parsing your Swagger documentation.
Not too familiar with bootprint-swagger
Swagger2Markup converts a Swagger JSON or YAML file into AsciiDoc or Markdown documents which can be combined with hand-written documentation. The AsciiDoc documents can be converted into HTML5, PDF and EPUB. The Swagger2MarkupConverter supports the Swagger 1.2 and 2.0 specification.
ID participation: you know the requirements for output.
We've touched on how you create the Swagger file: by hand, including with the Swagger Editor, and with annotations
Some of us love to code HTML by hand. Some to write DITA by hand. If you do, you'll love writing JSON by hand.
Issues: how do you know that the JSON is valid? Use a good text editor, validate the JSON schema, use swagger-tools to validate semantically.
Top down approach? This is design first – code flow from this
Bottom up approach: Already have the API – add the Swagger descriptions to it.
Hand crafting by using the Editor.
Get validation for free. Although somewhat painful.
Top down approach? This is design first – code flow from this
You can also use the editor with Swagger Node to create the code as you design it. More for the developer in you.
Annotations: generating Swagger output from your code.
Has technical implications, but a good goal because it's easier to maintain and in synch.
Bottom up approach: Already have the API – add the Swagger descriptions to it.
JAX-RS annotations in red / Swagger annotations in blue
You have to be comfortable reading the code, understanding a bit of what's going on. What's being sent. What's being returned. Our developers were very helpful getting me to a deeper understanding of how they put the APIs together.
2 Swagger annotations are required for Swagger to recognize an API: @Api for the resource (set of APIs) and @ApiOperation for the method (GET, POST, PUT, DELETE, etc.).
Other annotations add details to the documentation. JAX-RS based applications can pull info from the basic @XxxxParam annotations (@QueryParam, @PathParam...), although you can override these
May run some build process to generate JSON files served up to the web server - at which point you are still Annotation-based.
Can also hand-code JSON - which seems like a terrifying commitment long term.
This is a normal process for us with docs: write something, build or transform it, then deliver it (print/FTP it/copy files etc.)
May run some build process to generate JSON files served up to the web server - at which point you are still Annotation-based.
The ultimate in being in synch. Note that this is delivered through the Swagger UI, not offline.
"Technically challenging" is an understatement.
We did this with our first Swagger project. Was quite popular. But we had to caution users (internal) not to hang themselves by trying out delete operations, for example.
Let's go through some parts of Swagger that you might use in documenting a REST API.
We showed the JSON behind the Swagger UI.
From the spec, "The files describing the RESTful API in accordance with the Swagger specification are represented as JSON objects and conform to the JSON standards. YAML, being a superset of JSON, can be used as well to represent a Swagger specification file."
This is the JSON object.
There is an excellent walkthrough of the swagger spec on the API Evangelist site: swagger.apievangelist.com. Have a link at the end of the presentation.
The current Swagger UI can display both v2 and v1 compatible files, but not at the same time. V2 takes the form of a a single file and v1 is multiple files, so can't co-exist
You can write this JSON.
Common way to view Swagger-compliant JSON
Standard visualization
You can run the Swagger UI locally and display APIs that are hosted.
You can host the Swagger UI
Possible use for ID: own this!
We also demoed this. Another way to view Swagger-compliant JSON
Nice thing about the editor is that it's a quick way to view a swagger file without having access to the Swagger UI.
Works with YAML. Accepts and saves JSON and YAML
YAML is a recursive acronym: YAML Ain't Markup Language.
From Wikipedia: Early in its development, YAML was said to mean "Yet Another Markup Language",[3] but it was then reinterpreted (backronyming the original acronym) to distinguish its purpose as data-oriented, rather than document markup.
Designed to be easier for us humans to read and interpret. (Easier than JSON)
Run online or locally (For example with Swagger Node)
Possible use for ID: Update existing manually create specs. Take a different description (word doc) and write it up here)
This is swagger in your code. The output of this is swagger-compliant and can be used in the Swagger UI
This is a set of annotations to declare and manipulate the output. You don't need to know all about the Swagger spec, but you can use it as reference.
Swagger is a spec. With this set of tools, you can check whether your JSON complies with the spec
CLI
Convert a file from v1 to v2
Validate a file: find errors and warnings. (Also possible in the editor). Showing this on screen.
starts all Swagger document validation using the JSON Schema file(s). Once that validation passes, goes through each pertinent semantic validation.
Possible use for ID: I often use this to help various teams validate their swagger – especially if they're creating by hand. Because I know the spec, I can help them describe their API while they focus on designing and coding.
Have fun with visualization. This one is called Swagger.ed.
Just an example of how different visualizations can be written against the same swagger-compliant files.
Has a chrome extension
Can zoom in and out
Here I double-clicked on the pet path and can inspect the resource in a different visualization.
Possible use for ID: review APIs for inconsistencies. Help teams visualize the catalog.
Just a couple more slides
Not only can you design APIs with swagger, you can add it to existing APIs. This is what we did in our first project.
The Swagger UI can be excellent for finding inconsistencies and errors
For example, once in Swagger, we noticed that identical parameters in different operations were different data types. One was a string, another an integer for the same thing.
Also saw how inconsistent our resources endpoints were: mix of nouns and verbs. Mix of plurals and singulars
Because it's a spec, you can share the description easily. If I give you a swagger-compliant file, you can load it in your swagger tool
Lots of people are actively working on Swagger, both from a community standpoint and from a code standpoint
Issues with commercial software? This is open source
Has a great API explorer
If your API endpoints aren't resources but actions. Lots of info crammed into a body request.
Developers can get creative with APIs. Some are difficult to show. For example, showing that a query param could have value x or y, or z. Just recently supported.
I work with people who don't like the look of Swagger UI. Think it's good as an API explorer, but not so good for reference. To modify the UI is tough, from what I understand. However, because it's a spec, you might be able to create your own visualization (think swagger.ed)
Initial reactions were "cool!" Reactions from developers learning APIs has been mixed: "I like some other treatments better"
Being cool is important.
The "Try it" button has security implications. Some people also don't want it with their reference. Of course, you can always hide it.
Show POC if have time: using docpad. Pull data from several sources and integrate