# The OpenAPI Specification Version 3.0 Highlights

**Canonical:** https://apievangelist.com/2017/01/25/the-openapi-specification-version-30-highlights/

I am impressed with the work that the Open API Initiative (OAI) working group has accomplished with the [version 3.0 release of the OpenAPI Specification](https://www.openapis.org/specification/v3insights). I have had zero involvement in moving the specification forward (something I'm changing), and after coming back to the effort I am impressed with what they've prioritized, and accomplished for this release. 

The highlights in version 3.0 of the OpenAPI Spec for me are:

*   **Components** - The new components architecture really reflects "APIs" in my opinion, making things modular and reusable.
*   **Body** - Catching up when it comes to allowing the body to be defined separately from the headers and parameters.
*   **Content Negotiation** \- You can now define content objects to define the relationship between response objects, media types, and schema.
*   **Linking** - It isn't hypermedia, but it is definitely a nod towards hypermedia, allowing the linking of objects.
*   **Webhooks** - You can now define callbacks that can be attached to a subscription operation describing an outbound operation.
*   **Schema** - Increased investment in JSON Schema, including support of \`oneOf\`, \`anyOf\` and \`not\` support, as well allowing for alternative schema now.
*   **Hosts** - You can now have multiple hosts, allowing you to more narrowly define the host for each path.
*   **Examples** - Allows you to better describe, and provide examples of APIs responses and requests.
*   **Version Identifier** - Not a big one, but removing the swagger: "2.0" identifier--it will now just be openapi.
*   **Cookies** - I'm not a big fan of this being introduced, but it makes sense, and I'm sure is usable for many API operators.

[The OAI blog provides a five-part series covering the version 3.0 release](https://www.openapis.org/specification/v3insights). These ten areas are the highlights for me. I think they nailed it as far as what was needed, while also pushing into areas like linking and webhooks that I hadn't anticipated. I am looking forward to playing with converting some of my 2.0 specs to be 3.0 compliant--once I am a little more intimate with it, I can do better to estimate how long it will take for me to evolve my platform from 2.0 to 3.0.

I am impressed with what the OpenAPI Spec working group has gotten accomplished. I am optimistic about what is possible with OpenAPI Spec in 2017--something I'm going to be investing in heavily.
