Apostrophe CMS中api调用的唯一字段类型和特定GET参数

时间:2018-05-05 17:31:12

标签: api headless apostrophe-cms fieldtype

我有几个关于撇号CMS的问题:

  1. 是否可以在撇号中添加唯一的字段类型?我找不到办法做到这一点。
  2. 编辑:我注意到我不够具体。我想确保数据库中的两个实例在添加的字段中具有相同的值。它应该是一个额外的id。这有选择吗?也许是这样的:

    addFields: [
        {
            name: 'secondId',
            label: 'Second ID',
            type: 'string',
            required: true,
            unique: true
        }
    ]
    
    1. 我想通过在GET参数中传递对应部分的一个已创建字段类型的特定值来访问撇号无头api并获取特定元素。这样的事情可能吗?
    2. 例如:

      件:

      module.exports = {
          extend: 'apostrophe-pieces',
          name: 'article',
          label: 'Article',
          pluralLabel: 'Articles',
          restApi: {
              safeFor: 'manage'
          },
          addFields: [
              {
                  name: 'title',
                  label: 'Name',
                  type: 'string',
                  required: true
              },
              {
                  name: 'author',
                  label: 'Author',
                  type: 'string',
                  required: true
              }
          ]
      };
      

      期望的api呼吁获得所有鼓舞人心的文章" Jon"作者:

      http://example.com/api/v1/article?author=Jon

      非常感谢你!

1 个答案:

答案 0 :(得分:0)

自定义字段类型

您可以通过扩展apostrophe-schemas并添加正确的定义来在项目级别添加自定义字段类型。您需要为服务器端清理添加转换器,并为表单字段的前端添加一个populator。

您可以按照Apostrophe架构模块中的示例进行操作,链接的是定义浮点数的函数

https://github.com/apostrophecms/apostrophe/blob/0bcd5faf84bc7b05c51de7331b17f5929794f524/lib/modules/apostrophe-schemas/index.js#L1367 https://github.com/apostrophecms/apostrophe/blob/0bcd5faf84bc7b05c51de7331b17f5929794f524/lib/modules/apostrophe-schemas/public/js/user.js#L991

您可以分别在项目级别lib/modules/apostrophe-schemas的{​​{1}}和index.js中添加定义。

<强>过滤

您可以通过在查询中添加public/js/user.js来搜索您的片段索引中的Jon字符串,但您更有可能希望按片段的值过滤片段。

如果您有片段类型?search=jonarticle,则authors架构中可以有一个joinByOne字段,可让您将该文章与{{1}相关联片段。然后,通过启用article,您可以直接过滤这些已加入的属性。

author

可以找到pieceFilters的完整纲要

我认为您还需要在piecesFilters配置https://apostrophecms.org/docs/tutorials/intermediate/cursors.html#filtering-joins-browsing-profiles-by-market

中将该过滤器标记为对api使用安全