feat(mock-server-core): add parseOpenApiRequestBodies export#31
Merged
Conversation
Additive parser export returning each operation's request-body schema —
the one part of an operation's contract the mock pipeline deliberately
drops (MockEndpoint carries no request body, since the mock server never
validates request payloads). It walks the same dereferenced operations as
parseOpenApiToEndpoints and emits { method, path, contentType, schema,
required } per operation: OpenAPI 3.x requestBody content (a JSON media
type preferred) and Swagger 2.0 in:'body' parameters both reduce to the
same shape.
Exposed browser-safe from the /parsing subpath and swagger-parser-backed
from the Node root, mirroring parseOpenApiToEndpoints, so a consumer — the
Lens code-vs-spec contract-drift check — can read a request body's declared
shape and join it to the endpoint table by (method, path). Zero change to
MockEndpoint or the mock runtime.
- openapi.ts: OpenApiRequestBody interface + requestBody?/consumes? on
OpenApiOperation; parseOpenApiRequestBodies + pickRequestBody helper
- openapiNode.ts: parseOpenApiRequestBodiesNode (swagger-parser deref)
- parsing.ts / index.ts: re-exports (+ OpenApiRequestBodySpec /
ParseOpenApiRequestBodiesResult result types)
- tests: 100% patch coverage (openapi.test.ts, openapiNode.test.ts)
- docs: CHANGELOG (Unreleased), mock-server-core README, docs/mock-server.md
E2E coverage (strict mode)
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Additive parser export returning each operation's request-body schema — the one part of an operation's contract the mock pipeline deliberately drops (MockEndpoint carries no request body, since the mock server never validates request payloads). It walks the same dereferenced operations as parseOpenApiToEndpoints and emits { method, path, contentType, schema, required } per operation: OpenAPI 3.x requestBody content (a JSON media type preferred) and Swagger 2.0 in:'body' parameters both reduce to the same shape.
Exposed browser-safe from the /parsing subpath and swagger-parser-backed from the Node root, mirroring parseOpenApiToEndpoints, so a consumer — the Lens code-vs-spec contract-drift check — can read a request body's declared shape and join it to the endpoint table by (method, path). Zero change to MockEndpoint or the mock runtime.