Giant Machines is a software design and full-stack development agency that builds custom web and mobile applications, including RESTful APIs, for a wide range of clients. As with most client-based work, developer downtime can be a serious problem. The business wants to deliver value to clients quickly, yet unexpected issues can arise during development that impact productivity.
The engineering team at Giant Machines relies on Postman to help them save time and stay efficient as they collaborate on API projects. Platform tools, such as Postman’s mock servers, enable developers to continue to make progress locally as they work through issues with external dependencies.
The engineering culture at Giant Machines is deeply collaborative. Project teams typically range from two to ten developers and often work alongside client teams. At the start of every project, the Giant Machines back-end team creates a project workspace in Postman to help them centralize and organize all of the resources needed to build their API. The workspace serves as a single source of truth for the project, helping team members stay in sync during development and providing a point of reference for other teams.
Next, the team configures environments for each deployment stage, such as local, dev, staging, QA, and production. This allows the team to customize requests using variables, so they can quickly switch between environments during testing.
Creating environments in Postman helps us run tests faster by allowing us to simply switch the context of our requests as we move from one environment to the next.
A typical project workspace contains multiple Postman Collections — one for the API in development, and separate collections for each external dependency. For example, if Giant Machines is developing an e-commerce application, the back-end team may need to access collections for authorization, payment, or shipping services needed to build a particular API. Collections help the team stay organized and easily access these resources during development and troubleshooting. The team finds Postman Collection Runners useful when they want to run a series of requests together in a particular environment. During iterations, it helps to avoid accidentally causing regressions and make sure the API is working as expected.
As we push changes through different deployment environments, Postman’s Collection Runners help us do a quick check of our API without worrying about the front-end application.
Scripts in Postman also help the back-end developers stay productive by saving commonly used variables. In an e-commerce order creation flow, developers may use a pre-request script to set authorization headers that would fetch a bearer or basic auth token, and a test script to save the order ID returned in the response.
Postman’s auto-generated API documentation is updated in real-time with every update to a collection, including dynamic examples and machine-readable instructions. This handy resource cuts down on excess back and forth communication, and helps the team work faster during development. In addition, the docs can be easily shared with front-end and client teams, making it easier for others to understand and use the APIs.
Postman’s automated API documentation is super practical. Our front-end developers can access everything they need in one place, and we can confidently hand off a well-documented API to our clients.
Most APIs today don’t exist in a vacuum. A big part of back-end development at Giant Machines requires a project’s APIs to integrate with third-party services. However, the availability and performance of these external resources are beyond the control of the team. Servers go down, databases get out of sync, proxies fail, or data is too short-lived to be useful during development. Often, it’s impossible to determine the cause of the issue, creating a roadblock for the back-end team and wasting valuable time.
On one e-commerce project, the team was working on an API that was deeply coupled with a third-party shipping service. For every request made to the API, they needed to make another request to the external service in order to maintain a shopping cart functionality for both the e-commerce application and the shipping service. However, the external dev environment was unstable and would constantly go down. Also, the service would wipe its database frequently, which caused problems with data availability.
When issues arise with external dependencies, the Giant Machines team can’t simply rip out the service and keep going. Instead, they use Postman’s mock servers to continue local development during the interim.
For the e-commerce project, the team configured a mock server for any external service that had become unreliable. Spinning up a mock server for the shipping service also duplicated its collection and environment, which simulated the endpoints and responses needed to run their API. Using its matching algorithm, the mock server returned the same responses that had been saved when previously calling the live service. The next time the API hit an endpoint, such as adding a product to a shopping cart, it could use the mock response to remain functional.
Postman’s mock server is flexible and enables some leeway — when a call hits an endpoint, it doesn’t have to match exactly, it just needs to look similar and have the same HTTP parameters. In addition, the mock server is decoupled from the API code base, so the team is not shipping code that references the mock server or mock data. The mock configuration is all that’s needed.
Postman’s mock servers have saved us countless developer hours. The impact on our code base is minimal as there are no mock responses in our code.
The back-end team found it easy to access and manage their mock servers in Postman. The servers are available in the project workspace alongside the API’s collections.
When Giant Machines hands off APIs to clients, the process typically involves a discussion around recommended tools and platforms. The back-end team encourages clients to consider Postman to help them manage and update their APIs going forward. Some client teams are new to Postman, others are already fans. Regardless of their level of experience, clients experience a streamlined onboarding process thanks to the platform’s ease of use and feature set that gets them hands on with the API faster without having to dive into the code base. The Giant Machines team also shares tips and successful strategies, like using Postman’s mock servers during development, which provides an added layer of support and helps the company develop stronger client relationships.