-
Notifications
You must be signed in to change notification settings - Fork 19
Web Conference 2022.05.17 Curb
- Every other week Tuesday call at 9am PT, 12pm ET, 5/6pm CET
Meeting ID: 898 5980 7668 - Passcode 320307
https://us02web.zoom.us/meeting/register/tZ0lcuCgrjwsHNyZRagmc86b12iCmWGBHfjq
One tap mobile: +13126266799,,89859807668#,,,,*320307# US (New York)
Dial by phone: +1 929 436 2866 (US) (Find your local number)
Main Topics
- Welcome (5 mins) - Jacob Larson, Omaha
- Overview of OpenAPI (10 mins) - Michael Schnuerle, OMF
- Issue #87 - review and leave your comments
- Passport and Developer Tools (15 mins) - Michael Danko, Passport
- Lacuna and validating with YAML (15 mins) - Eric Mai, Lacuna
- Feedback and Q&A (10 mins) - Michael Schnuerle, OMF
- Hosts: Jacob Larson, Omaha
- Note Taker: John Good, Ford AV
- Facilitator: Michael Schnuerle, OMF
- Outreach: Angela Giacchetti, OMF
- 24 Attendees
-
Meeting Recording - Passcode:
Z*$^w4ge
- OMF Slide Presentation
-
Issue #87
- Working Group participants provide feedback on how IT departments are consuming data specifications, which are easiest to use, and any challenges they face
- Working Group participants provide feedback on potential usefulness of OpenAPI for CDS
- Determine willingness and level of support to CDS OpenAPI documentation over the coming months
- Introduction, Jacob Larson: OpenAPI for documenting the Curb Data Specification
- OMF's objective is to get the Curb Data Specification out into the cities for use
- OMF's goal is to build CDS in the open
- Recap of development process: all of the work is done on Github, every other Tuesday we have a public working group meeting
- Next meeting: May 31, 2022, on privacy
Michael – overview of OpenAPI
-
Real-world examples of companies using it or something similar
-
Why you should care about this technology
-
The intent today is to get feedback/Q&A, see if you think it is a fit for our curb work
-
APIs: a digital interface to expose functionality or receive data between software applications
-
These can be documented to establish interoperability on a standard basis between user groups
-
People using the curb or monitoring the curb – allows data to flow in a secure way between parties in a standardized format
-
OpenAPI: an openly defined industry standard way to describe HTTP/web-based APIs
-
Instead of just using text on Github, you can describe them as a digital structure.
-
Open does not mean “public” here, just created in the open and free to use
-
The OpenAPI specification is managed by the OpenAPI Initiative (previously Swagger spec), much like CDS is managed by OMF
-
Benefits of OpenAPIs: simplifes collaboration, common understanding to explain what functionality is available within an API – automated code generation & testing of API endpoints, automatic generation of documentation and visualizations to assist with API adoption
-
Instead of it just being a document on Github with static documentation that you have to read, there is more interactivity
-
There is sample code to test things – which inputs work and what does the output look like
-
Ability to have online/offline tools to validate and document to better understand CDS and its various API components
Complementary benefits:
- OpenAPI specification – industry-standard spec that outlines how they are structured
- Mechanism to display how the documentation file is displayed / ensuring that it is readable and easy to understand
- Key Question for OMF and the Curb WG: Why and how?
- If we collectively put CDS into the OpenAPI format for the next release, why would we and do this?
Next steps:
- Passport/Lacuna presentations
- Michael follow-up discussion
Michael Danko, Passport and OpenAPI
- Key objective of this presentation: How we are using these specifications
- How is Passport currently using OpenAPI?
Passport has published multiple APIs – can demonstrate how other partners can interact with our APIs:
-
Access token API
-
Payment tokenization API
-
We still integrate specific functionality at the request of our clients
Why did we do this? What are the benefits?
-
OAS files help people understand the different functionality and how it integrates with another application
-
A common standard language
-
OAS – a language to convey the functionality and technical limitations of the spec
-
Source of truth, and change management
-
APIs go through different versions and functionality changes over time
-
Adopting OpenAPI has allowed us to improve our change management, and understand when we are making a “breaking change” and changes that allow us to preserve backwards compatibility
-
The raw code file is intended to be read by software
-
In the OpenAPI version, it is human readable, and easier to understand how data is structured
-
As we accelerate adoption, this automated documentation becomes more important
-
Example: We are seeing an uptick of smart/connected ALPR devices
-
Easy way for our customers to connect those devices to Passport APIs, to determine who has paid for parking
-
Provided a technical example of what we are providing
-
Stoplight.io is a piece of web-based software to automate the creation of the OpenAPI standard documentation, and to help API creation
-
Public-facing
Eric Mai, Lacuna
- Technical info: To write an OpenAPI spec: it’s just a .json (JavaScript Object Notation) or .yaml file
- YAML: a more concise way to define JavaScript objects
- OpenAPI provides for a rich and complete spec
Options for OpenAPI implementation:
-
Specify the format of the request
-
Examples where people can look at the types of API implementation
-
Metadata for any object in the spec – why things are the way they are
-
Can define administrative processes, including contacts and tech support
-
License that is used
-
It can also help optimize the validation process
-
Having this level of documentation can help ensure that we have not unintentionally changed the shape of requests or format
Question: how do you handle version control?
-
Lacuna: we don’t have conflicting versions, we update all at once
-
The other part that helps – each back-end application has its own OpenAPI spec, e.g. a geography
-
Would only define payload shapes around those
-
Segmentation based on division of responsibilities
-
Lacuna: we are not currently validating request payloads in MDS payloads right now
Michael – an open question is how we would incorporate this into CDS?
- CDS is a bit different than Lacuna’s APIs – it will also live in Github to some extent (to ensure collaboration) – but we would have to make sure that both versions are up-to-date
- Having a technical contract is super useful for both producers and users of the API
Michael – we expect to receive data in a specific format
- An OpenAPI spec can be used on both sides, for the creators and users of the spec
Brian, SDOT – just so I’m understanding correctly, it is not written into OpenAPI?
- Eric, Lacuna – they have a separate MDS implementation that they have created
- Michael, OMF – we have put MDS in a different validation/documentation system
Michael Schnuerle, OMF
- Essentially, using OpenAPI would be digitally describing CDS
Key Questions:
-
Would our members/cities find this useful?
-
Do we have enough critical mass to move forward?
-
If you are interested in this, let us know. Email us.
-
Background: This request originated in a Github feature request.
Kenya, SFMTA: building on Brian’s question, beyond the current validation method. I am curious why MDS hasn’t used OpenAPI?
-
Michael: We are currently working towards an OMF best practice
-
Background: Currently with OMF, we’ve used a python validation schema, embedded in the spec itself
-
Michael: this screenshot is what has been used to validate MDS for the last three years
-
The text file on the right is very similar OpenAPI
-
In March 2019, this issue came up for MDS
-
There has been a lot of questions and discussions on this over the years
Important Note: Michael: if we go through with this for CDS, we would likely go through with this on an MDS perspective
-
We would discuss with MDS committee to see how it could be implemented
-
We would determine what type of tool that we would use, and then we would do that for both
-
Michael: when MDS was created in 2018, OpenAPI was not as well defined and widely used
-
As it has changed from Swagger to OpenAPI, it has become more widely accepted
-
Michael: JSON schema is what we used to define the MDS, but it doesn’t have the same adoption and ecosystem that OpenAPI has
-
There is an ecosystem of libraries, a python script that validates/matches your JSON splot
-
Reference: Json-schema.org/implementations.html
-
However, this spec format is not as nice to work with from a human readable perspective
-
The Python validator option is written into the MDS spec
Key Questions for the Working Group
- How do your IT departments like to consume data specifications?
- What challenges have you seen with consuming data specifications?
- Are there any data specifications that were particularly easy for your IT departments to consume?
- If we published in this format (OpenAPI), does that look useful?
- What kind of information would you like to see there?
- How would you be willing to support this work (volunteer or financial) over the coming months?
Key Questions to help us decide?
- Does this help implement CDS?
- What other information would you like to see around this?
- How can you support (if you find this useful)?
Implementation Parameters
- Michael – some members of the steering committee could help lead that effort
- We don’t currently have a mechanism to fund one-off projects at OMF
- We might need a funding mechanism for a one-time purpose
- It might be a bigger task than OMF’s staff capacity
- We have paid third-parties previously for major version updates for schema updates
Important Clarifications, from James Wilson:
- OpenAPI is an extension of JSON schema – all three can interoperate
- OpenAPI is a superset of JSON schema
- Michael – therefore, it might work out of the box on the MDS…
- OpenAPI is a more web-oriented representation of the data
- Michael – essentially, we would already have a very good starting point
- More support of the author compared to the JSON schema
Matt Davis, Populus
- Populus uses OpenAPI to document our APIs that we provide
- It is a widely adopted tool
- We are using a web development framework that includes generating OpenAPI documentation from the code itself – not a separate project
- e.g. the API tooling itself can generate it – a tool called FastAPI, but similar things exist for many web frameworks
Do any of the tools that OMF use have the option to automatically create it?
- Matt – for some of the APIs, it is not the auto-generated one
- Developers of populus.ai
- At Developers.populus.ai, there is a Manually maintained file
- Matt – I will put it into the chat
API Examples from Populus:
-
List MDS Geographies / List MDS Policies
-
Policies/geographies/agencies API for MDS
-
Michael – once you define it in OpenAPI spec, you get a well-developed web-based interactive documentation that you can manipulate in different ways
Next Steps
- Michael – we will be working towards the next release of CDS, either 1.1 or 2.0
- Feel free to leave your thoughts and comments in the Github issues page
Chat From Allie Moise, Passport to Everyone 11:02 AM Will the recording be shared after? shared* From OMF Zoom to Everyone 11:03 AM Yes the recording will be shared afterwards on the meeting page, like we have with our other CDS meetings. https://github.com/openmobilityfoundation/curb-data-specification/wiki/Web-Conference-2022.05.17-Curb#agenda From Allie Moise, Passport to Everyone 11:03 AM Thank you! From Kristin Tufte (UW - TCAT) to Everyone 11:21 AM No questions at the moment, but super useful, thanks! From Michael Danko (Passport Labs) to Everyone 11:28 AM A "technical contract" is super useful for both the creators and consumers of an API to be on the same page. From Matt Davis (Populus, he/him) to Everyone 11:39 AM It's a spec called jsonschema. https://json-schema.org/ From Matt Davis (Populus, he/him) to Everyone 11:49 AM https://api.populus.ai/v2/api-docs https://api.populus.ai/v2/dev-docs
Participants • Michael Schnuerle, OMF • Jacob Larson, City of Omaha • Eric Mai, Lacuna • Dominika Kowalska Bernhart, Flowbird • Alex Demisch, SFMTA • Brian Hamlin, Seattle DOT • Deepanshu Girdhar • Jacob Malleau, CurbIQ • James D. Wilson, VADE.AI • Jean Kao, Populus • Joe Bryan • John Good, Ford AV LLC • Kenya Wheeler, San Francisco MTA • Kristin Tufte, UW – TCAT • Marisa Mangan, SANDAG • Mark Mockett, USDOT Volpe Center • Michael Danko, Passport Labs • Tom Carranza, Los Angeles DOT • Trevor Thomas, City of Santa Monica • Tristan Charreton