tommwq.work/aip

AIP-2603

· [tommwq@126.com]

```org

:CATEGORY: sdk

List命令参数

一些列表请求需要为父集合提供参数,以便在其中列出资源。例如,假设一个API有属于出版商资源的书籍资源,并考虑一个列出属于某个出版商的书籍的请求:

```proto message ListBooksRequest { / 父资源,拥有这些书籍的集合。 / 格式:publishers/{publisher} string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: “library.googleapis.com/Book” }];

// 返回的最大项目数。 int32 page_size = 2;

// 从先前的List请求返回的next_page_token值,如果有的话。 string page_token = 3; } ```

对于相应的gcloud列表命令,我们可以在`gcloud publishers books list PUBLISHER`(位置参数)和`gcloud publishers books list –publisher=PUBLISHER`(标志)之间进行选择。

指导

所有列表命令参数都应该是标志,而不是位置参数。在gcloud的资源模型中,命令组通常对应于资源,并且组中命令的位置参数是为这些资源保留的。在列表命令接受参数的情况下,该参数将引用父资源而不是命令组的资源;因此,它应该是一个标志而不是位置参数。

在上面的示例中,列表命令接受一个出版商参数。`books`命令组中的命令应该为书籍资源保留位置参数。因此,列表命令的出版商参数应该是一个标志:

``` gcloud publishers books list –publisher=PUBLISHER ```

变更日志

  • 2020-09-23: 将示例从“shelves”更改为“publishers”,以提供更好的资源所有权示例。

```