首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法返回类型的AutoRest生成可空布尔值

方法返回类型的AutoRest生成可空布尔值
EN

Stack Overflow用户
提问于 2020-04-15 06:30:04
回答 1查看 829关注 0票数 1

我对generat RestApiClient for CSharp有问题。在Visual中发现了问题,所以我下载了AutoRest CLI,但是生成了相同的错误方法返回类型。

代码语言:javascript
复制
AutoRest code generation utility [cli version: 3.0.6187; node: v12.14.1, max-memory: 8192 gb]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest


Showing All Installed Extensions

 Type       Extension Name                           Version 
 core       @autorest/core                           3.0.6274     
 core       @microsoft.azure/autorest-core           2.0.4417     
 extension  @microsoft.azure/autorest.csharp         2.3.84      
 extension  @microsoft.azure/autorest.modeler        2.3.55       

这是斯瓦什布克5.6.0从Swagger.json生成的WebApi

代码语言:javascript
复制
{
    "swagger": "2.0",
    "info": {
        "version": "v1",
        "title": "Server"
    },
    "host": "localhost:5992",
    "schemes": [
        "http"
    ],
    "paths": {
        "/api/User/HasUser": {
            "post": {
                "tags": [
                    "User"
                ],
                "operationId": "User_HasUser",
                "consumes": [],
                "produces": [
                    "application/json",
                    "text/json",
                    "application/xml",
                    "text/xml"
                ],
                "parameters": [
                    {
                        "name": "username",
                        "in": "query",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                            "schema": {
                              "x-nullable": false,
                              "type": "boolean"
                            }
                    }
                }
            }
        }
    },
    "definitions": {}
}

带有参数的命令

代码语言:javascript
复制
c:\> autorest --input-file=swagger.json --output-folder=autorest --csharp --clear-output-folder

AutoRest输出

代码语言:javascript
复制
namespace Api
{
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Threading;
    using System.Threading.Tasks;
    using Microsoft.Rest;

    public static partial class UserExtensions
    {
            public static bool? HasUser(this IUser operations, string username) ...    
    }
}

我期待的是"bool“而不是"bool?”

代码语言:javascript
复制
public static bool HasUser(this IUser operations, string username) ...    
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-08 09:04:02

根据autorest GitHub:不能用于响应原语的X-空上的这个问题,autorest生成器version 2存在一个问题,它们不能处理基元类型的x-空。

由于现在有一个新的版本(3)的发电机,这将不会被修复。你能更新自动休息并尝试使用新的发电机吗?

更新2020-05-11:

我做了一个小测试(在回答之前应该这样做,很抱歉),并且对基元返回类型上的x-空的支持似乎还没有实现。所以有了自动休息,你可能就倒霉了。

我在nswag上试用了你的swagger.json:

代码语言:javascript
复制
nswag openapi2csclient /input:swagger.json /classname:UserApiClient /namespace:UserApi /output:UserApiClient.cs

并生成一个具有正确返回类型的方法:

代码语言:javascript
复制
public System.Threading.Tasks.Task<bool> HasUserAsync(string username)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61222623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档