对于NET6中的GRPC服务,当bool属性的值为false时,Postman将其显示为[]

m1m5dgzv  于 2022-12-13  发布在  Postman
关注(0)|答案(1)|浏览(194)

如果我在proto文件中使用bool作为类型,Postman甚至不会显示属性,如果我使用google.protobuf.BoolValue作为类型,它会显示“is_valid”:{}在C#中,当is_valid = false时,它是有效的,但是当is_valid = true时,它是有效的,那么为什么当它为false时,它不显示任何内容呢?

原型示例:

syntax = "proto3";

option csharp_namespace = "xxx.Organization.V1.Contracts";

import "google/protobuf/wrappers.proto";
import "protos/txp/common/api/query/range.proto";
import "protos/txp/common/filters/string_filter.proto";
import "protos/txp/organization/v1/timezone.proto";

package txp.organization.v1;

    message AddressValidationResponse {
        Address address = 1;
        google.protobuf.BoolValue is_valid = 2;
        google.protobuf.BoolValue is_non_postal = 3;
        repeated google.protobuf.StringValue errors = 4;
        google.protobuf.StringValue success_message = 5;
        google.protobuf.StringValue address_precision = 6;
        Results results = 7;
    }

为is_valid字段自动生成的C#代码:

/// <summary>Field number for the "is_valid" field.</summary>
public const int IsValidFieldNumber = 2;
private static readonly pb::FieldCodec<bool?> _single_isValid_codec = pb::FieldCodec.ForStructWrapper<bool>(18);
private bool? isValid_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool? IsValid {
  get { return isValid_; }
  set {
    isValid_ = value;
  }
}

** Postman 回应:**

x1c 0d1x谢谢!

pobjuy32

pobjuy321#

我找到了原因,在这些情况下,当属性值等于默认值时,Postman不会显示属性,所以对我来说没什么大不了的。但也许有一种方法可以让这些属性显示出来,以防有人需要它们。

相关问题