Integrate Deeper with our Developer API 🧿

Integrate Deeper with our Developer API 🧿

Matt Fellows
Integrate Deeper with our Developer API 🧿

PactFlow’s officially supported Developer API has just landed.

As you may be aware, PactFlow is built atop the excellent open-source Pact Broker, extending it with various enterprise features to help our customers implement contract testing at scale.

The Pact Broker has a feature rich API, which is a Richardson Maturity Model Level 3 compliant hypermedia API using the Hypertext Application Language (HAL) convention for modelling relationships between resources.

Benefits of Hypermedia APIs

Hypermedia APIs are "self-describing." An API client calls the root (/) endpoint and follows known links (called "relations") to perform various actions, such as creating applications, publishing contracts, or posting verification results. This allows resource URLs to change, and for the ecosystem to be more resilient. REST clients need little to no prior knowledge about how to interact with an app beyond a generic understanding of hypermedia.

In essence, it simplifies your experience, allowing for flexible integration with your systems.

This model has served Pact and PactFlow very well. For example, it allows us to add additional PactFlow-specific behaviour to existing API workflows without changing or impacting open-source clients. So well, in fact, the Pact Broker API has remained backwards compatible for 9 years whilst introducing huge amounts of change and supporting a large community of open-source languages, CLIs and SDKs.

An API with clearer documentation

However, despite the self-documenting capabilities of HAL, our customers have told us in no-uncertain terms that it is hard to understand what capabilities exist in our API, and how to use it. This lack of visibility has made it harder to build tailored solutions on top of our API and adapt it to their ecosystem.

In August of this year, SmartBear released SwaggerHub Portal, our API documentation solution that makes it super easy to take an OpenAPI document from SwaggerHub and publish a user-friendly API Portal. Unfortunately, we did not have an OpenAPI document to describe our API. Until now.

Introducing the PactFlow Developer API

Today, we are announcing the launch of the PactFlow Developer API, released alongside some of our other products in SmartBear's API Portal:

The documentation covers all of the basics you need to get started and integrate with our API:

PactFlow API (Documentation View)

The API provides access to a rich collection of resources and capabilities, including but not limited to:

  • Contract Management
  • User, Team, Roles and Permissions Management
  • Webhook creation
  • Matrix and `can-I-deploy` information
  • Audit trail

...and much more.

PactFlow API (OpenAPI view)

Try it out in the browser

One of the handy features is the ability to call PactFlow APIs from your browser using the "try it out" feature. Just pop in your tenant name and your API token, and you can start to interact with PactFlow APIs in just a few minutes:

Try it out feature

Use Cases

We've had many customer requests for all sorts of items - here are some ideas to get you thinking:

  • Integrating user management and permissions with your custom onboarding processes.
  • Creating a Maven plugin for X - "When all you have is a hammer, everything looks like a nail". Organisations that use Maven seem to need everything to be in Maven. Perhaps you would like to publish a provider contract (OAS) from Maven, record a deployment or delete a branch?
  • Create a Jenkins Plugin (️️☝ see also Maven 🤣) or integrate deeply into another CI service.
  • Build an SCM integration with GitHub, GitLab, Bitbucket to automatically delete old branches, report status checks or update PRs.
  • Integrate our metrics data into your reporting dashboard, such as Splunk or Sumologic

Available Now

Our Developer API is available now to everyone on all plans. Head over to our API Portal to get started 👉

💡 Do you have something you'd like to build using our APIs? Connect with us in Slack (register here) and we would love to chat with you.

arrow-up icon