-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Rest API changes for SymsSync service #15695
Conversation
Hi, @epkalyanr 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. vsswagger@microsoft.com |
[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 Validation Report
|
Rule | Message |
---|---|
'id' parameter lacks 'description' property. Consider adding a 'description' element. Accurate description is essential for maintaining reference documentation. Location: Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json#L89 |
|
'id' parameter lacks 'description' property. Consider adding a 'description' element. Accurate description is essential for maintaining reference documentation. Location: Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json#L177 |
️️✔️
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 succeeded [Detail] [Expand]
There are no breaking changes.
️️✔️
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).
Swagger pipeline restarted successfully, please wait for status update in this comment. |
Hi @epkalyanr, Your PR has some issues. Please fix the CI sequentially by following the order of
|
@JeffreyRichter @markweitzel @mikekistler pls review |
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.
I left a few nitty comments that I hope you will address.
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/artifacts.json
Outdated
Show resolved
Hide resolved
}, | ||
"default": { | ||
"description": "Error response describing why the operation failed.", | ||
"schema": { |
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.
Error response should contain an x-ms-error-code
response header.
"schema": { | |
"headers": { | |
"x-ms-error": { | |
"type": "string", | |
"description": "The error code for specific error that occurred." | |
} | |
}, | |
"schema": { |
This comment is applicable to all error responses. You could define a reusable error response in the "responses" section to avoid duplication.
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.
@epkalyanr this "x-ms-error" header requires server side support. Could you please take a look?
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.
I just realized that I made a mistake in my suggestion -- the header name should be x-ms-error-code
.
}, | ||
"202": { | ||
"description": "Accepted" | ||
}, |
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.
A 202 response should include an Operation-Location
response header.
}, | |
"headers": { | |
"Operation-Location": { | |
"type": "string", | |
"description": "The URL that will return the operation result" | |
} | |
} | |
}, |
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 requires server side to return "Operation-Location" header
"schema": { | ||
"$ref": "#/definitions/KqlScriptResource" | ||
} | ||
}, |
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.
An operation that returns a 202 should not return any other success status code.
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.
But this is a long running operation and eventually it can returns 200 when using in LRO way
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.
@idear1203 -- We're in the process of refining the guidance on long running operations. You can read about them in the updated guidelines.
Also, @mikekistler has a doc that we are working on as well focusing on LROs that we'll eventually merge into the guidelines. Here's a link if you are interested.
}, | ||
"204": { | ||
"description": "No Content" | ||
}, |
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.
A delete operation should return only 204
or only 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.
@epkalyanr I am not sure the real status of the deletion operation. Could you please confirm?
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/artifacts.json
Outdated
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/artifacts.json
Outdated
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/artifacts.json
Outdated
Show resolved
Hide resolved
"name": "kqlScriptName", | ||
"in": "path", | ||
"required": true, | ||
"type": "string", |
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.
You should specify a maxLength
and pattern
on path parameters to restrict the length and allowed set of characters for user-specified names, e.g.
"type": "string", | |
"type": "string", | |
"maxLength": 50, | |
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$", |
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.
@epkalyanr This doesn't require sever side change but needs your input about the validation rule of kqlScriptName
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.
I left a few comments on SymsSync only as that was the focus of the last API Stewardship Board review.
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Outdated
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Outdated
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Outdated
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Outdated
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Show resolved
Hide resolved
"metastore" | ||
], | ||
"operationId": "Metastore_GetDatabaseOperations", | ||
"description": "Gets status of the resource", |
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.
Instead of of the resource
can we say of the database creation job
?
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 is actually getting the status of the resource and not the job
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.
Can we say of the database
then? The feedback is largely that calling something a resource
in REST API documentation is kind of like calling it a thing
. Using the actual name is more helpful to customers trying to understand how to use the API.
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Show resolved
Hide resolved
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Show resolved
Hide resolved
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.
Signing off on the high level API design discussed in the API Stewardship Board review at #15769 for just the symsSync.json spec.
specification/synapse/data-plane/Microsoft.Synapse/preview/2021-07-01-preview/symsSync.json
Show resolved
Hide resolved
"metastore" | ||
], | ||
"operationId": "Metastore_GetDatabaseOperations", | ||
"description": "Gets status of the resource", |
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.
Can we say of the database
then? The feedback is largely that calling something a resource
in REST API documentation is kind of like calling it a thing
. Using the actual name is more helpful to customers trying to understand how to use the API.
} | ||
}, | ||
"definitions": { | ||
"metaDataCreatedResponse": { |
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 operation is called Metastore_Register
, not MetaData_Create
. It is a problem because these local names are used when you generate code. A method signature like MetaDataCreatedResponse Register(...)
looks a lot worse than MetastoreRegistration Register(...)
.
{ | ||
"parameters": { | ||
"endpoint": "exampleWorkspace.dev.azuresynapse.net", | ||
"sqlPoolName": "SqlPool1", |
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.
Should this be sqlPoolId? We usually use ID for path segment parameters
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 needs to be addressed seperately by another team.
e4ff0c5
to
baec5dd
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.
Sign off stands for Synapse SDK team. The Swagger spec works well for SDK code generation.
cc: @wonner
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.
Looks good. 👍
I think all my concerns have been addressed.
* Rest API changes for SymsSync service * fixing ci failures * correcting api version * addressing PR comments * addressing PR comments * fixing test failures * correcting the example file * changing description from resource to database * addressing PR comment for response type * Leave SymsSync only * Minor change * Add an empty line Co-authored-by: Kalyan Raman <kalyanr@microsoft.com> Co-authored-by: Dongwei Wang <dongwwa@microsoft.com>
* Rest API changes for SymsSync service * fixing ci failures * correcting api version * addressing PR comments * addressing PR comments * fixing test failures * correcting the example file * changing description from resource to database * addressing PR comment for response type * Leave SymsSync only * Minor change * Add an empty line Co-authored-by: Kalyan Raman <kalyanr@microsoft.com> Co-authored-by: Dongwei Wang <dongwwa@microsoft.com>
MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow.
Changes to onboard APIs for SymsSync service
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.