Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactoring SDK's code generation patterns (aws#298)
Updates the SDK's code generation pattern with several improvements to improve discoverability, and consistency in client naming. * Standardizing of the service model's ServiceID for the name of the service client's package. * Adds an operation `Response` type that is in addition from the operation's `Output` parameters. This prevents collisions between SDK response metadata, marshaling methods, and modeled output parameters. * Refactor service client package's client name to be named Client instead of the service's short name. Removes the stuttering of client package and type, (e.g. s3.S3 becomes s3.Client) * Fix service endpoint lookups use the the service's modeled EndpointID instead of inconsistent service name. * Generate API operations into their own file instead of all operations and parameter types being generated into a single file. This improves readability of individual source files for documentation reference. Non-input/output types are still generated into a single file. This change also fixes several occurrences of incorrectly generated API operation input/output type names. * Removes aws/endpoints Service identifiers from endpoint list. These were not actually service identifiers, but EndpointsID. In addition the values modeled by the services were unstable, and could change causing breaking changes in the SDK's aws/endpoints package. The service client package's `EndpointsID` const should be used instead. * Move Paginate method from the initialized Request type into its own construct via the New<RequestType>Paginator function to create the request paginator. (e.g. req.Paginate becomes NewListObjectsPaginator(req)) Fix aws#294 aws#282 aws#275
- Loading branch information