与服务集成

最后更新:2026年6月22日

在上一步中,您已经创建了文章数据。现在到了将这些数据展示给真实用户的时候。WEEGLOO 负责存储和管理数据,因此通过哪种服务来展示这些数据完全由创建者决定。您可以做成 Web 应用程序,也可以扩展为移动应用,或者两者兼有。关键在于,您可以通过 WEEGLOO 提供的 RESTful API 获取数据,并按照自己想要的形式使用它。

在本示例中,我们将把 Tech Blog 做成一个网站。让访问者能够通过 Web 浏览器查看文章,而我们来构建这个界面(Front-end)。这样制作出的静态 Web 文件可以通过 WEEGLOO 的 Web Hosting 功能进行部署。

发放只读令牌

要调用 WEEGLOO API,需要用于认证的 Access Token。在本示例中,我们使用专门用于向访问者展示文章的只读令牌 Delivery Access Token,以及用于传递已发布内容的 API:CDA(Content Delivery API)。

在创建令牌之前,需要先用 SpaceRole 确定该令牌能够访问哪些数据。出于安全考虑,我们创建一个仅对前面创建的 Article Content Type 授予读取权限的 SpaceRole。这样一来,令牌除了读取文章之外什么都做不了。

  1. 在左侧菜单中点击 Roles & Permissions
  2. 点击 Create 并输入角色名称。例如:Article Read-Only
  3. 仅对 ArticleContentContent Type 允许 Read。不要开启其他权限。
  4. 点击 Save 保存。

仅对 Article 授予读取权限的 SpaceRole 设置界面

关于 SpaceRole 设置的详细内容,请参阅角色与权限

现在创建一个拥有该 SpaceRoleDelivery Access Token

  1. 在左侧菜单中点击 Delivery Access Tokens
  2. 点击 Create 并输入令牌名称。例如:Tech Blog Web
  3. Role 中选择前面创建的 Article Read-Only,然后点击 Save 保存。

请妥善保管发放的令牌值,它只会显示一次。由于该值可能会暴露到访问者的浏览器中,因此像上面那样用只读的 SpaceRole 来收窄它的权限范围非常重要。

以 Article Read-Only 角色发放的 Delivery Access Token 界面。令牌值已被遮盖

获取文章数据

现在我们实际调用获取文章的 API。认证通过 Authorization 头以 Bearer 方式进行,在其中填入前面创建的 Delivery Access Token 值。

Authorization: Bearer <Delivery Access Token>
APIMethodPathParams
CDAGET/v1/spaces/{spaceId}/content-types/{contentTypeId}/contents?order=-sys.createdAt,sys.id

该 API 会获取特定 Space 中的 Article Content 列表。我们通过 order 选项设置了按最新顺序排序,使用 include 选项还可以一并获取关联的数据。

第一次调用时可能不会返回任何数据。这是因为您创建的 Content 尚未发布(Publish)。为了区分正在编辑的数据和要展示给访问者的数据,WEEGLOO 设置了发布这一步骤。将 Content 发布后再次调用,就能查询到文章了。

{
    "sys": { "type": "TotalPageResponse" },
    "limit": 15,
    "totalCount": 1,
    "items": [
        {
            "sys": {
                "id": "3trmXRkRjC1x4J9h2om4Qh41o7sejd",
                "type": "Content",
                "space": { "sys": { "id": "ep8f7qJY", "type": "Refer", "targetType": "Space" } },
                "contentType": { "sys": { "id": "3trmXRkRjC1x4J9h2om4QZv0jC58Nv", "type": "Refer", "targetType": "ContentType" } },
                "createdAt": "2026-06-21T15:38:22.630Z",
                "updatedAt": "2026-06-21T15:38:22.630Z",
                "revision": 1
            },
            "fields": {
                "title": "Building a Headless Blog with WEEGLOO",
                "body": "WEEGLOO lets you define your content structure once and deliver it anywhere through a REST API. In this post we model an Article, write our first entry, and fetch it from a web app, with no backend server to build or maintain.",
                "category": "Web"
            }
        }
    ],
    "links": {
        "self": "/v1/spaces/ep8f7qJY/content-types/3trmXRkRjC1x4J9h2om4QZv0jC58Nv/contents?order=-sys.createdAt,sys.id"
    }
}

关于该 API 的详细用法和选项,请参阅 API 参考

多语言支持

更进一步,我们将文章以多种语言提供。WEEGLOO 提供 Locale 功能,让您可以用多种语言管理同一份内容。

首先在 Locale 设置中添加新语言。这里我们添加 Korean,并将在没有值时改为显示的 Fallback 语言设为 English。Fallback 是指当某种语言没有值时,用来代替显示的语言。

接下来转到前面创建的 Content,您会看到每个 Field 都新增了用于输入各语言对应值的输入框。这样就能按语言分别管理同一篇文章的内容。不过,要使用此功能,需要事先在 Content Type 中为相应的 Field 开启多语言选项。

文章的 Field 中同时出现英文(en-US)和韩文(ko-KR)输入框的样子

关于多语言支持的详细内容,请参阅多语言管理

这样,您就能用一套数据结构构建出支持多种语言的 Web 服务。现在您已经完成了基础的内容查询和多语言处理,下一步我们将了解多人协作创作和管理内容的协作功能。

  • 开始协作:邀请多人加入 Space,分配不同角色,共同管理内容。