Skip to content

Section 3.7 Version Negotiation. closes #78 - #200

Open
saumier wants to merge 1 commit into
masterfrom
78-negotiating-api-versions
Open

Section 3.7 Version Negotiation. closes #78#200
saumier wants to merge 1 commit into
masterfrom
78-negotiating-api-versions

Conversation

@saumier

@saumier saumier commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@saumier saumier linked an issue Jul 15, 2026 that may be closed by this pull request
@netlify

netlify Bot commented Jul 15, 2026

Copy link
Copy Markdown

Deploy Preview for reconciliation-api-specs ready!

Name Link
🔨 Latest commit 7d61db7
🔍 Latest deploy log https://app.netlify.com/projects/reconciliation-api-specs/deploys/6a5799a84a4644000808e6f5
😎 Deploy Preview https://deploy-preview-200--reconciliation-api-specs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@saumier
saumier requested a review from fsteeg July 15, 2026 14:33

@fsteeg fsteeg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Gregory! Looks good overall, some inline suggestions below.

Comment thread 1.0-draft/index.html
<pre class="example nohighlight">Accept: application/reconciliation.v1+json</pre>
</p>
<p>
A service that supports multiple versions SHOULD inspect this header and serve the highest-priority compatible version.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To actually support multiple versions, to me it seem the service MUST check the header:

Suggested change
A service that supports multiple versions SHOULD inspect this header and serve the highest-priority compatible version.
A service that declares support for multiple versions in its manifest MUST inspect this header and serve the highest-priority compatible version.

Comment thread 1.0-draft/index.html
Services SHOULD only apply fallback when no reconciliation-specific media type is supplied in <code>Accept</code>.
In that case, services SHOULD use a documented default version for unversioned requests,
such as their latest stable version.
If a request explicitly advertises only unsupported reconciliation versions, services SHOULD return

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find 'advertises' a bit confusing here. How about this:

Suggested change
If a request explicitly advertises only unsupported reconciliation versions, services SHOULD return
If a client explicitly requests only unsupported reconciliation versions, services SHOULD return

Comment thread 1.0-draft/index.html
Comment on lines +572 to +578
<p>
For debugging, services MAY also include an informational header such as:
<code>Reconciliation-Version: 1.0</code>
If provided, this header is informational only and MUST NOT override the negotiated
representation indicated by <code>Content-Type</code>.
</p>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this redundant? We already provide that info in the Content-Type and the Link headers, plus it's the only non-standard header here, and it adds ambiguity (which you clarify in the text). So from my point of view, this could be removed:

Suggested change
<p>
For debugging, services MAY also include an informational header such as:
<code>Reconciliation-Version: 1.0</code>
If provided, this header is informational only and MUST NOT override the negotiated
representation indicated by <code>Content-Type</code>.
</p>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Negotiating API versions

2 participants