Comments (5)
@WillGunn good catch, but the behavior with required=false is the same.
There's a PR in the works to fix this with a new check.
from oasdiff.
Thanks for the quick fix @reuvenharrison!
from oasdiff.
From the OpenAPI spec:
Default Parameter Values
Use the default keyword in the parameter schema to specify the default value for an optional parameter. The default value is the one that the server uses if the client does not supply the parameter value in the request.
According to the definition of a breaking-change, a change to the spec that could break a client is considered breaking.
So if a client is relying on a default value X and it changes to Y, this is breaking.
I'll provide a fix.
from oasdiff.
A required field with a default value doesn't make much sense, if you change the schema to be required: false, does the diff tool behave properly @blva ?
from oasdiff.
great point @WillGunn, just updated the specs w/ required:false and got same result from breaking-only
which makes sense and is aligned with the OpenAPI specs:
base
openapi: 3.0.1
info:
title: Test
tags:
- name: Tests
description: Test tag.
paths:
/api/changeToDefaultParameterValues/{pathParam}:
get:
tags:
- Tests
summary: This is a test
description: Test description.
operationId: getTest
parameters:
- name: queryParam
in: query
description: Query param
required: false
schema:
maxLength: 10
minLength: 1
type: string
default: default
- name: pathParam
in: path
description: Query param
required: false
schema:
maxLength: 10
minLength: 1
type: string
default: default
- name: headerParam
in: header
description: Query param
required: false
schema:
maxLength: 10
minLength: 1
type: string
default: default
requestBody:
description: Request body
content:
application/text:
schema:
type: string
required: false
responses:
"200":
description: OK
content:
application/json:
schema:
type: string
revision
penapi: 3.0.1
info:
title: Test
tags:
- name: Tests
description: Test tag.
paths:
/api/changeToDefaultParameterValues/{pathParam}:
get:
tags:
- Tests
summary: This is a test
description: Test description.
operationId: getTest
parameters:
- name: queryParam
in: query
description: Query param
required: false
schema:
maxLength: 10
minLength: 1
type: string
default: newDefault
- name: pathParam
in: path
description: Query param
required: false
schema:
maxLength: 10
minLength: 1
type: string
default: newDefault
- name: headerParam
in: header
description: Query param
required: false
schema:
maxLength: 10
minLength: 1
type: string
default: newDefault
requestBody:
description: Request body
content:
application/text:
schema:
type: string
required: false
responses:
"200":
description: OK
content:
application/json:
schema:
type: string
result
paths:
modified:
/api/changeToDefaultParameterValues/{pathParam}:
operations:
modified:
GET:
parameters:
modified:
header:
headerParam:
schema:
default:
from: default
to: newDefault
path:
pathParam:
schema:
default:
from: default
to: newDefault
query:
queryParam:
schema:
default:
from: default
to: newDefault
from oasdiff.
Related Issues (20)
- `response-property-became-required` is added for required properties that are newly added to response bodies HOT 1
- Non-friendly error message
- oasdiff flatten doesn't output paths HOT 1
- YAML/JSON field name typo: "reuired" -> "required" HOT 1
- Feature request: Support external metadata
- Verbose CLI output to help troubleshoot (especially in composed mode) HOT 5
- oasdiff error in composed mode when the same path appears in different files HOT 1
- Race condition while parsing command line arguments if telemetry is enabled HOT 1
- "Error resolving reference/map key not found" when running oasdiff across the set of files with intensive external refs HOT 1
- Supporting "--fail-on" option for changelog command
- basePath and servers.ulr support HOT 3
- Add support for AWS API Gateway extensions to OpenAPI HOT 6
- Diff tool gets confused when a new inline enum value is added and a new enum type is added at the sime time HOT 4
- Changelog does not log adding a new optional request body HOT 2
- `latest` docker container (April 8th) introduces a bug that causes false positives HOT 1
- --flatten-allof panic HOT 3
- Unmarshalling errors don't provide offset HOT 6
- Support breaking-changes and changelog for schemas with multiple types
- Support "flatten allOf" for schemas with multiple types
- Typo in description of incompatible changes HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oasdiff.