小编djp*_*nne的帖子

如何指定属性可以为null或带有swagger的引用

如何将属性指定为null或引用?讨论如何使用jsonschema将属性指定为null或引用.

我希望以昂首阔步的方式做同样的事情.

回顾上面的答案,使用jsonschema,可以这样做:

{
   "definitions": {
      "Foo": {
         # some complex object
      }
   },

   "type": "object",
   "properties": {
      "foo": {
         "oneOf": [
            {"$ref": "#/definitions/Foo"},
            {"type": "null"}
         ]
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

答案的关键是使用oneOf.

我的问题的关键点:

  1. 我有一个复杂的对象,我想保持DRY,所以我把它放在一个定义部分,以便在我的swagger规范中重用:其他属性的值; 响应对象等

  2. 在我的规范中的各个地方,属性可能是对此类对象的引用或为null.

如何使用不支持的Swagger oneOfanyOf

注意:一些swagger实现使用x-nullable(或某些)指定属性值可以为null,但是,$ref 它引用的内容替换该对象,因此它将显示任何使用x-nullable被忽略.

swagger swagger-2.0

6
推荐指数
3
解决办法
7505
查看次数

使用 python ctypes 引用不透明类型

我正在使用定义不透明类型的第三方 C 库:

    foo_t
Run Code Online (Sandbox Code Playgroud)

并在其函数中使用指向该类型的指针:

    void foo_init(foo_t *foo);
Run Code Online (Sandbox Code Playgroud)

典型用法是在堆栈上分配 foo_t 并传递引用:

  {
    foo_t foo;

    foo_init(&foo);
    ...
  }
Run Code Online (Sandbox Code Playgroud)

foo_init()在不知道 a 的构成的情况下如何使用 ctypes 进行调用foo_t

我想如果我知道sizeof(foo_t)我可以创建一个该大小的缓冲区并进行强制转换,但是是否可以使用 ctypes 获取该大小?

我可以编写一个单行 C 程序:

    printf("sizeof(foo_t) = %zu\n", sizeof(foo_t));
Run Code Online (Sandbox Code Playgroud)

并将该值硬编码到我的Python中,但这很快就会变得丑陋:每次升级库时我都必须接触我的Python源代码。

一种稍微简洁的方法是编写一个 python c-ext 来导出大小值,但这也需要在每次库升级时重新编译。

有谁有使用 ctypes 与这种不透明类型的秘诀吗?

python ctypes

5
推荐指数
1
解决办法
1644
查看次数

标签 统计

ctypes ×1

python ×1

swagger ×1

swagger-2.0 ×1