ComparisonSpec is your contract. Traffic is reality. When they drift, traffic wins.
Prism is Stoplight’s open-source mock server for OpenAPI, and it’s actively maintained. Point it at a spec and it serves stubbed responses that match the schema. Run it in proxy mode and it routes calls to your real API and validates both requests and responses against the spec, flagging where live traffic violates it. For design-first work where the spec is genuinely the contract, it’s a clean choice.
The catch is that all of that runs against a spec you write and keep current. Prism validates against the spec; it doesn’t author it for you, and it doesn’t record live traffic to replay it back later. So the friction shows up where the spec and reality diverge. Polymorphic schemas withoneOfandanyOfdon’t round-trip cleanly. Body examples are Lorem ipsum unless someone hand-authorsx-fakerextensions. Stateful flows aren’t the model.
Gostly starts from the other end. Point the proxy at your real upstream for an hour. It records the traffic. Then it replays the same bytes back, on demand, against your tests. Spec is the contract; traffic is what actually happened.
Free to start. Self-hosted. Same proxy serves OpenAPI design teams and traffic-driven test teams without picking sides.
No shame in staying on Prism. It’s a good tool for the case it was built for.