创建宁静服务时复制功能实现

时间:2018-01-17 04:38:38

标签: swagger swagger-ui swagger-2.0 swashbuckle

我尝试将我的服务创建为restful,但是当我运行Refresh.bat文件并运行npm start时。它会出错。

[HttpPost("api/services/app/Test")]
public async Task CreateTest(TestDetailsDto input)

[HttpDelete("api/services/app/Test")]
public async Task DeleteTest(EntityDto input)

[HttpGet("api/services/app/Test")]
public async Task GetTest(EntityDto input)

[HttpPut("api/services/app/Test")]
public async Task UpdateTest(TestDetailsDto input)
  

错误:

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6197,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6230,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6252,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6267,16):类型参数' R'的类型参数。无法推断   从用法。请考虑明确指定类型参数   输入候选参数' void'不是有效的类型参数,因为它   不是候选人的超级类型' TestDetailsDto'。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6281,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6300,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6315,16):类型参数的类型参数' R'无法推断   从用法。请考虑明确指定类型参数   输入参数候选者'数字'不是有效的类型参数,因为   它不是候选人的超级类型' TestDetailsDto'。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6329,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6351,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6370,16):类型参数' R'的类型参数。无法推断   从用法。请考虑明确指定类型参数   输入候选参数' void'不是有效的类型参数,因为它   不是候选人的超级类型' TestDetailsDto'。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6384,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-list.component.ts   (210,45):Property' deleteTest'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (102,41):Property' getTestDetailsforEdit'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (163,37):Property' createTest'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (206,37):Property' createTest'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (218,37):Property' updateTest'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6197,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6230,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6252,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6267,16):类型参数' R'的类型参数。无法推断   从用法。请考虑明确指定类型参数   输入候选参数' void'不是有效的类型参数,因为它   不是候选人的超级类型' TestDetailsDto'。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6281,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6300,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6315,16):类型参数的类型参数' R'无法推断   从用法。请考虑明确指定类型参数   输入参数候选者'数字'不是有效的类型参数,因为   它不是候选人的超级类型' TestDetailsDto'。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6329,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6351,5):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6370,16):类型参数' R'的类型参数。无法推断   从用法。请考虑明确指定类型参数   输入候选参数' void'不是有效的类型参数,因为它   不是候选人的超级类型' TestDetailsDto'。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/shared/service-proxies/service-proxies.ts   (6384,15):重复的功能实现。

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-list.component.ts   (210,45):Property' deleteTest'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (102,41):Property' getTestDetailsforEdit'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (163,37):Property' createTest'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (206,37):Property' createTest'在类型上不存在   ' TestServiceProxy'

     

错误   C:/Users/MyName/source/repos/Stanchion/angular/src/app/merchandising/Tests/Test-main.component.ts   (218,37):Property' updateTest'在类型上不存在   ' TestServiceProxy'

Service.Swag.Config文件:

{
  "swaggerGenerator": {
    "fromSwagger": {
      "url": "http://localhost:22742/swagger/v1/swagger.json",
      "output": null
    }
  },
  "codeGenerators": {
    "swaggerToTypeScriptClient": {
      "className": "{controller}ServiceProxy",
      "moduleName": "",
      "namespace": "",
      "typeScriptVersion": 1.8,
      "template": "Angular",
      "promiseType": "Promise",
      "dateTimeType": "MomentJS",
      "nullValue": "Undefined",
      "generateClientClasses": true,
      "generateClientInterfaces": false,
      "generateOptionalParameters": false,
      "wrapDtoExceptions": false,
      "useTransformOptionsMethod": false,
      "useTransformResultMethod": false,
      "generateDtoTypes": true,
      "operationGenerationMode": "MultipleClientsFromPathSegments",
      "markOptionalProperties": false,
      "generateCloneMethod": false,
      "typeStyle": "Class",
      "extensionCode": "service.extensions.ts",
      "generateDefaultValues": true,
      "excludedTypeNames": [],
      "handleReferences": false,
      "generateConstructorInterface": true,
      "importRequiredTypes": true,
      "baseUrlTokenName": "API_BASE_URL",
      "output": "../src/shared/service-proxies/service-proxies.ts"
    },
    "swaggerToCSharpClient": {
      "generateClientClasses": true,
      "generateClientInterfaces": false,
      "generateDtoTypes": true,
      "injectHttpClient": false,
      "disposeHttpClient": true,
      "generateExceptionClasses": true,
      "exceptionClass": "SwaggerException",
      "wrapDtoExceptions": true,
      "useHttpClientCreationMethod": false,
      "httpClientType": "System.Net.Http.HttpClient",
      "useHttpRequestMessageCreationMethod": false,
      "useBaseUrl": true,
      "generateSyncMethods": false,
      "clientClassAccessModifier": "public",
      "generateContractsOutput": false,
      "className": "{controller}Client",
      "namespace": "MyNamespace",
      "generateOptionalParameters": false,
      "requiredPropertiesMustBeDefined": true,
      "dateType": "System.DateTime",
      "dateTimeType": "System.DateTime",
      "timeType": "System.TimeSpan",
      "timeSpanType": "System.TimeSpan",
      "arrayType": "System.Collections.ObjectModel.ObservableCollection",
      "dictionaryType": "System.Collections.Generic.Dictionary",
      "classStyle": "Inpc",
      "operationGenerationMode": "MultipleClientsFromOperationId",
      "generateDefaultValues": true,
      "generateDataAnnotations": true,
      "excludedTypeNames": [],
      "wrapResponses": false,
      "generateResponseClasses": true,
      "responseClass": "SwaggerResponse",
      "handleReferences": false,
      "generateImmutableArrayProperties": false,
      "generateImmutableDictionaryProperties": false,
      "output": null
    },
    "swaggerToCSharpController": {
      "className": "{controller}",
      "namespace": "MyNamespace",
      "additionalNamespaceUsages": [
        "System.Web.Http"
      ],
      "generateOptionalParameters": false,
      "requiredPropertiesMustBeDefined": true,
      "dateType": "System.DateTime",
      "dateTimeType": "System.DateTime",
      "timeType": "System.TimeSpan",
      "timeSpanType": "System.TimeSpan",
      "arrayType": "System.Collections.Generic.IEnumerable",
      "dictionaryType": "System.Collections.Generic.Dictionary",
      "classStyle": "Inpc",
      "operationGenerationMode": "MultipleClientsFromOperationId",
      "generateDefaultValues": true,
      "generateDataAnnotations": true,
      "excludedTypeNames": [],
      "wrapResponses": false,
      "generateResponseClasses": true,
      "responseClass": "SwaggerResponse",
      "handleReferences": false,
      "generateImmutableArrayProperties": false,
      "generateImmutableDictionaryProperties": false,
      "output": null
    }
  }
}

我有" nswag":" 10.6.0"版本

它在service-proxies.ts文件中为这些方法提供了错误。

export class AppServiceProxy {
    private http: Http;
    private baseUrl: string;
    protected jsonParseReviver: (key: string, value: any) => any = undefined;

    constructor(@Inject(Http) http: Http, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
        this.http = http;
        this.baseUrl = baseUrl ? baseUrl : "";
    }

    /**
     * @return Success
     */
    Test(id: number): Observable<TestDetailsDto> {
        let url_ = this.baseUrl + "/api/services/app/Test?";
        if (id === undefined || id === null)
            throw new Error("The parameter 'id' must be defined and cannot be null.");
        else
            url_ += "Id=" + encodeURIComponent("" + id) + "&"; 
        url_ = url_.replace(/[?&]$/, "");

        const content_ = "";

        let options_ = {
            body: content_,
            method: "get",
            headers: new Headers({
                "Content-Type": "application/json; charset=UTF-8", 
                "Accept": "application/json; charset=UTF-8"
            })
        };

        return this.http.request(url_, options_).flatMap((response_) => {
            return this.processTest(response_);
        }).catch((response_: any) => {
            if (response_ instanceof Response) {
                try {
                    return this.processTest(response_);
                } catch (e) {
                    return <Observable<TestDetailsDto>><any>Observable.throw(e);
                }
            } else
                return <Observable<TestDetailsDto>><any>Observable.throw(response_);
        });
    }

    protected processTest(response: Response): Observable<TestDetailsDto> {
        const status = response.status; 

        if (status === 200) {
            const responseText = response.text();
            let result200: TestDetailsDto = null;
            let resultData200 = responseText === "" ? null : JSON.parse(responseText, this.jsonParseReviver);
            result200 = resultData200 ? TestDetailsDto.fromJS(resultData200) : new TestDetailsDto();
            return Observable.of(result200);
        } else if (status === 401) {
            const responseText = response.text();
            return throwException("A server error occurred.", status, responseText);
        } else if (status !== 200 && status !== 204) {
            const responseText = response.text();
            return throwException("An unexpected server error occurred.", status, responseText);
        }
        return Observable.of<TestDetailsDto>(<any>null);
    }

    /**
     * @return Success
     */
    Test(input: TestDetailsDto): Observable<void> {
        let url_ = this.baseUrl + "/api/services/app/Test";
        url_ = url_.replace(/[?&]$/, "");

        const content_ = JSON.stringify(input ? input.toJSON() : null);

        let options_ = {
            body: content_,
            method: "put",
            headers: new Headers({
                "Content-Type": "application/json; charset=UTF-8", 
                "Accept": "application/json; charset=UTF-8"
            })
        };

        return this.http.request(url_, options_).flatMap((response_) => {
            return this.processTest(response_);
        }).catch((response_: any) => {
            if (response_ instanceof Response) {
                try {
                    return this.processTest(response_);
                } catch (e) {
                    return <Observable<void>><any>Observable.throw(e);
                }
            } else
                return <Observable<void>><any>Observable.throw(response_);
        });
    }

    protected processTest(response: Response): Observable<void> {
        const status = response.status; 

        if (status === 200) {
            const responseText = response.text();
            return Observable.of<void>(<any>null);
        } else if (status === 401) {
            const responseText = response.text();
            return throwException("A server error occurred.", status, responseText);
        } else if (status !== 200 && status !== 204) {
            const responseText = response.text();
            return throwException("An unexpected server error occurred.", status, responseText);
        }
        return Observable.of<void>(<any>null);
    }

    /**
     * @return Success
     */
    Test(input: TestDetailsDto): Observable<number> {
        let url_ = this.baseUrl + "/api/services/app/Test";
        url_ = url_.replace(/[?&]$/, "");

        const content_ = JSON.stringify(input ? input.toJSON() : null);

        let options_ = {
            body: content_,
            method: "post",
            headers: new Headers({
                "Content-Type": "application/json; charset=UTF-8", 
                "Accept": "application/json; charset=UTF-8"
            })
        };

        return this.http.request(url_, options_).flatMap((response_) => {
            return this.processTest(response_);
        }).catch((response_: any) => {
            if (response_ instanceof Response) {
                try {
                    return this.processTest(response_);
                } catch (e) {
                    return <Observable<number>><any>Observable.throw(e);
                }
            } else
                return <Observable<number>><any>Observable.throw(response_);
        });
    }

    protected processTest(response: Response): Observable<number> {
        const status = response.status; 

        if (status === 200) {
            const responseText = response.text();
            let result200: number = null;
            let resultData200 = responseText === "" ? null : JSON.parse(responseText, this.jsonParseReviver);
            result200 = resultData200 !== undefined ? resultData200 : <any>null;
            return Observable.of(result200);
        } else if (status === 401) {
            const responseText = response.text();
            return throwException("A server error occurred.", status, responseText);
        } else if (status !== 200 && status !== 204) {
            const responseText = response.text();
            return throwException("An unexpected server error occurred.", status, responseText);
        }
        return Observable.of<number>(<any>null);
    }

    /**
     * @return Success
     */
    Test(id: number): Observable<void> {
        let url_ = this.baseUrl + "/api/services/app/Test?";
        if (id === undefined || id === null)
            throw new Error("The parameter 'id' must be defined and cannot be null.");
        else
            url_ += "Id=" + encodeURIComponent("" + id) + "&"; 
        url_ = url_.replace(/[?&]$/, "");

        const content_ = "";

        let options_ = {
            body: content_,
            method: "delete",
            headers: new Headers({
                "Content-Type": "application/json; charset=UTF-8", 
                "Accept": "application/json; charset=UTF-8"
            })
        };

        return this.http.request(url_, options_).flatMap((response_) => {
            return this.processTest(response_);
        }).catch((response_: any) => {
            if (response_ instanceof Response) {
                try {
                    return this.processTest(response_);
                } catch (e) {
                    return <Observable<void>><any>Observable.throw(e);
                }
            } else
                return <Observable<void>><any>Observable.throw(response_);
        });
    }

    protected processTest(response: Response): Observable<void> {
        const status = response.status; 

        if (status === 200) {
            const responseText = response.text();
            return Observable.of<void>(<any>null);
        } else if (status === 401) {
            const responseText = response.text();
            return throwException("A server error occurred.", status, responseText);
        } else if (status !== 200 && status !== 204) {
            const responseText = response.text();
            return throwException("An unexpected server error occurred.", status, responseText);
        }
        return Observable.of<void>(<any>null);
    }
}

0 个答案:

没有答案