Comments (4)
@aznashwan thanks for the suggestion. My question is what do you mean for "validation"? (e.g. is it a check for required parameters, input format of certain fields etc?)
from azure-sdk-for-go.
Most prevalent example are all the string configuration options scattered around the various resources.
By validation; I mean a way to be ensure that the inputs are valid (prefferably even without making API calls at all).
ex:
func isValidProtocol(protocol string) bool {
validProtocols := map[string]bool {
"TCP": true,
"UDP": true,
"*": true,
}
return validProtocols[protocol]
}
This can be applied further to a bunch of of other things (ex: given hosted service name contains disallowed characters, given disk size is preposterous etc...)
from azure-sdk-for-go.
@aznashwan unfortunately we consciously removed those checks from the client and we don't want to have those. Here are the reasons:
- We think client library should be dumb enough and not be aware of the server's logic.
- Adding validation to the client “duplicates” the functionality. (e.g. in both cases, we return an error anyway)
- Having such logic at the client makes it possible to easily go “out of sync” (e.g. max chars for hosted service name can be increased on the API but client would require update to support it).
We try to don't do such validations in our hand-written SDKs (because they're hard to maintain and rarely add value). For the new Azure Resource Management SDKs (that will be code-generated), we may do this if the valid input(s)/formats are part of the model spec.
from azure-sdk-for-go.
All very fair points indeed; some of them having crossed my mind as well.
from azure-sdk-for-go.
Related Issues (20)
- Support update container registry cache rule source repository and target repository HOT 2
- [Question] How does token Caching work HOT 5
- [azeventhubs] NextPartitionClient does not always respect context cancellation HOT 3
- [azcosmos] 1.0.3 - The provided cross partition query can not be directly served by the gateway HOT 4
- Question: How can I count the number of blobs in a storage container? HOT 3
- DownloadFile without Range.Count incurs 2 calls to GetProperties HOT 2
- Update the doc of InteractiveBrowserCred and DeviceCodeCred
- Pagination of Availability Statuses does not work
- Go SDK for commercial-marketplace-client HOT 1
- Clean up track1 tool in eng/tools
- service Package HOT 1
- Download a specific version from Azure blob HOT 3
- Allow expiring authorization token for 403 response HOT 6
- Allow passing any policy on individual request done with a client HOT 1
- Cloud Shell ManagedIdentitySource should throw if a user-assigned managed identity clientID or resourceID is supplied
- Port AuthenticationRecord related caching doc HOT 1
- [Identity] AzurePipelinesCredential parameterless constructor and add to DAC HOT 1
- [Identity] Create a new credential to support FIC in Github Actions HOT 1
- Add tracing to the Cosmos Client HOT 2
- ARM Resource Health NewEmergingIssuesClient().NewListPager NextPage is failing to unmarshall armresourcehealth.EmergingIssue.RefreshTimestamp HOT 1
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 azure-sdk-for-go.