-
Notifications
You must be signed in to change notification settings - Fork 5.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Web PubSub] Add new API version for GA #15907
Conversation
Hi, @vicancy Thanks for your PR. I am workflow bot for review process. Here are some small tips. Any feedback about review process or workflow bot, pls contact swagger and tools team. [email protected] |
Swagger Validation Report
|
Rule | Message |
---|---|
The operation 'WebPubSub_SendToAll' returns 202 status code, which indicates a long running operation, please enable 'x-ms-long-running-operation. Location: WebPubSub/stable/2021-10-01/webpubsub.json#L181 |
|
The operation 'WebPubSub_SendToConnection' returns 202 status code, which indicates a long running operation, please enable 'x-ms-long-running-operation. Location: WebPubSub/stable/2021-10-01/webpubsub.json#L376 |
|
The operation 'WebPubSub_SendToGroup' returns 202 status code, which indicates a long running operation, please enable 'x-ms-long-running-operation. Location: WebPubSub/stable/2021-10-01/webpubsub.json#L583 |
|
The operation 'WebPubSub_SendToUser' returns 202 status code, which indicates a long running operation, please enable 'x-ms-long-running-operation. Location: WebPubSub/stable/2021-10-01/webpubsub.json#L932 |
️️✔️
Avocado succeeded [Detail] [Expand]
Validation passes for Avocado.
️️✔️
ModelValidation succeeded [Detail] [Expand]
Validation passes for ModelValidation.
️️✔️
SemanticValidation succeeded [Detail] [Expand]
Validation passes for SemanticValidation.
️❌
Cross-Version Breaking Changes: 42 Errors, 0 Warnings failed [Detail]
- Compared Swaggers (Based on Oad v0.9.0)
- current:stable/2021-10-01/webpubsub.json compared with base:preview/2021-08-01-preview/webpubsub.json
Only 30 items are listed, please refer to log for more details.
️️✔️
CredScan succeeded [Detail] [Expand]
There is no credential detected.
️️✔️
[Staging] SDK Track2 Validation succeeded [Detail] [Expand]
Validation passes for SDKTrack2Validation
- The following tags are being changed in this PR
️️✔️
[Staging] PrettierCheck succeeded [Detail] [Expand]
Validation passes for PrettierCheck.
️️✔️
[Staging] SpellCheck succeeded [Detail] [Expand]
Validation passes for SpellCheck.
️️✔️
[Staging] Lint(RPaaS) succeeded [Detail] [Expand]
Validation passes for Lint(RPaaS).
[Call for Action] To better understand Azure service dev/test scenario, and support Azure service developer better on Swagger and REST API related tests in early phase, please help to fill in with this survey https://aka.ms/SurveyForEarlyPhase. It will take 5 to 10 minutes. If you already complete survey, please neglect this comment. Thanks. |
Swagger Generation Artifacts
|
Hi @vicancy, Your PR has some issues. Please fix the CI sequentially by following the order of
|
b1a23f9
to
affca43
Compare
Hi @jhendrixMSFT, could you help review? As confirmed by the API team, the cross-version failure is false alarm. And the track2 net failure is not blocking swagger update. |
@vicancy has this been reviewed and approved by the arch board? |
Hi @jhendrixMSFT I am a little lost about the process of adding a new API to the swagger, shall I go through the arch board when adding a new API 40a3903#diff-dda68e9b97ba5dba6c96a7545d555adf12d08fa5a2a7b54674447a5399b8bb40R638? Could you refer me to the process document if any? |
1e4b76b
to
40a3903
Compare
@markweitzel can you help get the API review going? |
40a3903
to
533cbbd
Compare
c46ba67
to
934fff8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new APIs look good. There are a few questions that I've added as well that we can look at. Also, there is some general cleanup that should be performed on the OpenAPI document that will improve the overall quality of the documentation and downstream code.
specification/webpubsub/data-plane/WebPubSub/stable/2021-10-01/webpubsub.json
Show resolved
Hide resolved
}, | ||
"default": { | ||
"description": "Error response", | ||
"x-ms-error-response": true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a schema for your errors? There is an error structure defined in the Azure REST Guidelines. Is this the structure you are using? If it is, then it should be documented, if not, then you should document what schema you are using and be consistent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks cool, will follow
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: there could be error responses returned earlier when a client calls the REST API, for example, when the load balancer returns 502. In such case, the response body would probably be some plain-text body. Will that break the client if the default
response only defines the ErrorDetail
response?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vicancy - If I'm understanding this correctly, this would be an error that happens BEFORE the service is involved--e.g. the request never gets to the service. If this is accurate, then we should not worry about modeling this in the swagger document. We should focus on the errors that the service throws and work to be consistent there. I'll also check with our SDK team that our libraries are resilient in this scenario.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the effort Mark. Yeah my only concern is if our SDK clients can handle this without error. Anyway, updated the swagger.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great! Thank you!
} | ||
], | ||
"responses": { | ||
"202": { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a long running operation, but appears to missing the operation-location
header. Also the guidelines for LROs have been updated with more clarity. See: REST Guidelines and Considerations for Service Design
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is a fire-and-forget pattern instead of a long-running operation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vicancy -- If I'm understanding this API correctly, this is the operation that will publish the message to the subscribers. It makes sense where this would be 'fire and forget,' but is there any scenario where the client would need to understand or reason about if the :send completed successfully, is in progress, etc?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is a pub/sub pattern. 202 means the message is successfully published to the channel, but since the service don't know whether all the subscribers successfully receive the messages (which requires some ack mechanism from the subscriber which we don't support and don't want to support in this send API) I think 202 makes more sense than 200
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vicancy -- In this case, we would still recommend a 202
, but you do not include the operation-location
header. The 202
is the mechanism the service would use to indicate that it will do its best to deliver the message. That is, it has Accepted
the message to deliver. A 200
would imply that the message has been delivered.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we will not include operation-location
header.
specification/webpubsub/data-plane/WebPubSub/stable/2021-10-01/webpubsub.json
Outdated
Show resolved
Hide resolved
specification/webpubsub/data-plane/WebPubSub/stable/2021-10-01/webpubsub.json
Outdated
Show resolved
Hide resolved
specification/webpubsub/data-plane/WebPubSub/stable/2021-10-01/webpubsub.json
Outdated
Show resolved
Hide resolved
specification/webpubsub/data-plane/WebPubSub/stable/2021-10-01/webpubsub.json
Show resolved
Hide resolved
specification/webpubsub/data-plane/WebPubSub/stable/2021-10-01/webpubsub.json
Outdated
Show resolved
Hide resolved
Since it is a breaking change
Hi @markweitzel and @johanste , the PR is updated, please help to take a look and let me know your concerns if any. |
Swagger Generation Artifacts
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
specification/webpubsub/data-plane/WebPubSub/stable/2021-10-01/webpubsub.json
Outdated
Show resolved
Hide resolved
Hi @jhendrixMSFT just noticed that the PR is merged, however, our service hasn't yet supported this stable version yet, shall we revert the merged PR and keep it open until the service GA (Nov. 11th)? |
As offline discussed, since GA date is coming, we keep the stable version in the repo |
* Add stable version * update path * Update naming * Update webpubsub.json * Change DELETE back to 200 Since it is a breaking change * Update webpubsub.json * We don't expect health check to return error body * Update to use 204 for all delete * Update webpubsub.json
* Add stable version * update path * Update naming * Update webpubsub.json * Change DELETE back to 200 Since it is a breaking change * Update webpubsub.json * We don't expect health check to return error body * Update to use 204 for all delete * Update webpubsub.json
MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow.
Changelog
Add a changelog entry for this PR by answering the following questions:
Contribution checklist:
If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist
Otherwise your PR may be subject to ARM review requirements. Complete the following:
Check this box if any of the following apply to the PR so that label “WaitForARMFeedback” will be added automatically to begin ARM API Review. Failure to comply may result in delays to the manifest.
-[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits.
Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.
If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.