| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package requests
- import (
- "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
- "io"
- "strings"
- )
- type CommonRequest struct {
- *baseRequest
- Version string
- ApiName string
- Product string
- // roa params
- PathPattern string
- PathParams map[string]string
- Ontology AcsRequest
- }
- func NewCommonRequest() (request *CommonRequest) {
- request = &CommonRequest{
- baseRequest: defaultBaseRequest(),
- }
- request.Headers["x-sdk-invoke-type"] = "common"
- request.PathParams = make(map[string]string)
- return
- }
- func (request *CommonRequest) TransToAcsRequest() {
- if len(request.Version) == 0 {
- errors.NewClientError(errors.MissingParamCode, "Common request [version] is required", nil)
- }
- if len(request.ApiName) == 0 || len(request.PathPattern) == 0 {
- errors.NewClientError(errors.MissingParamCode, "At least one of [ApiName] and [PathPattern] should has a value", nil)
- }
- if len(request.Domain) == 0 || len(request.Product) == 0 {
- errors.NewClientError(errors.MissingParamCode, "At least one of [Host] and [Product] should has a value", nil)
- }
- if len(request.PathPattern) > 0 {
- roaRequest := &RoaRequest{}
- roaRequest.initWithCommonRequest(request)
- request.Ontology = roaRequest
- } else {
- rpcRequest := &RpcRequest{}
- rpcRequest.baseRequest = request.baseRequest
- rpcRequest.product = request.Product
- rpcRequest.version = request.Version
- rpcRequest.actionName = request.ApiName
- request.Ontology = rpcRequest
- }
- }
- func (request *CommonRequest) GetUrl() string {
- return strings.ToLower(request.Scheme) + "://" + request.Domain + ":" + request.Port + request.GetQueries()
- }
- func (request *CommonRequest) GetBodyReader() io.Reader {
- return request.Ontology.GetBodyReader()
- }
- func (request *CommonRequest) GetStyle() string {
- return request.Ontology.GetStyle()
- }
- func (request *CommonRequest) GetQueries() string {
- return request.Ontology.GetQueries()
- }
- func (request *CommonRequest) addPathParam(key, value string) {
- request.PathParams[key] = value
- }
|