创建使用微服务的应用

  • Evoq内容
  • Evoq参与

概述

DNN提供api,您可以使用它从应用程序访问微服务。基本上,您的应用程序只需要生成HTTPS请求https://dnnapi.com/contentURL路径、URL查询或请求正文中包含特定的信息,以及HTTP报头中的API键。结果在响应正文中从服务器发回。

结构化内容具有用于内容类型、内容项、已发布内容项、可视化工具引擎、可视化工具定义和可视化工具实例的api。

DNN微服务API参考

授权

在你的应用程序可以访问一个网站的内容类型和项目之前,该网站的主机/超级用户必须为你提供该网站的API密钥。API键可以被授予属于其关联站点的内容项和/或内容类型的只读或读写权限。

在请求的HTTP报头中,必须包含授权设置;例如,“授权:承载myAPIkey”。

HTTP请求

每个API都是一个HTTP请求方法:GET、POST、PUT或DELETE。示例:结构化内容微服务下的ContentTypes组允许你做以下事情:

  • 获取所有项或特定项的列表
  • POST创建一个新项
  • PUT来更新现有的项
  • DELETE删除现有项

项可以是内容类型、内容项、发布的内容项、可视化器或可视化器实例。

重要的是:Evoq站点的所有API HTTP请求必须转到https://dnnapi.com/content

微服务期望API的参数位于以下位置之一:

  • URL查询。如果API根据一组条件检索(GET)项列表,则这些条件将在URL的查询部分中指定为可选的键-值对。
  • URL路径。如果API检索(GET)、修改(PUT)或删除(DELETE)特定的项,则该项的ID通常会添加到URL路径中。
  • 消息体。如果API创建(POST)或修改(PUT)项,则新项(POST)的属性或现有项(PUT)的新属性将在请求正文中的json序列化数据传输对象(DTO)中指定。DTO中的字段因项类型而异。
HTTP方法 客观的 典型URL路径 HTTP的身体
得到 项目清单 https://dnnapi.com/content/api/apiname?价值 (不是必需的)。
得到 特殊的项目 https://dnnapi.com/content/api/apiname/itemID (不是必需的)。
帖子 特殊的项目 https://dnnapi.com/content/api/apiname/itemID?发布= TRUE JSON DTO
特殊的项目 https://dnnapi.com/content/api/apiname/itemID?发布= TRUE JSON DTO
删除 特殊的项目 https://dnnapi.com/content/api/apiname/itemID (不是必需的)。

HTTP响应

如果API返回一个项目或项目列表,则结果是响应正文中的json序列化DTO。

如果结果是一个列表,响应的主体是一个JSON对象,包含以下内容:
  • 一个文档数组,其中包含JSON对象中每个项的信息,以及
  • 一个totalResultCount其值表示返回的项数。

如果结果是单个项,则响应的主体是仅包含该项的JSON对象。

获取项目ID

每个项目都有一个唯一的ID来标识它,不管它是什么类型。许多api都需要所处理的特定项的ID。

您可以通过执行筛选后的GET并解析响应正文来确定特定项的ID。示例:GET /api/ContentTypes api返回一个json格式的列表,该列表与URL查询中指定的条件匹配。结果列表的每个元素都包含一个带有键的对id

例子

属性更新内容项把/ api / ContentItems / {id}API,它接受三个参数:

  • id.(string)路径中必填。
  • contentItem.(json格式的字符串)必须作为请求体。
  • 发布.(boolean) URL查询中的可选参数。
  1. 如果您不知道内容项的ID,请使用获得/ api / ContentItems使用与所需条件匹配的参数。然后从返回的列表中找到所需的内容项。返回的内容项对象列表的格式如下:
    {"documents": [{"id": "11111111-…","contentTypeId": "myContentType", "contentTypeName": "myContentType", "name": "myContentItemName", "description": "string", "language": "string", "alreadyPublished": true, "details": {}, "currentVersion": 0, "usage ": 0, "createdAt": "string", "createdBy": {"id": "string", "name": "string", "thumbnail": "string"}, "updatedAt": "string", "updatedBy": "StructuredContent.Models "。用户信息”、“stateId”:0,“标签”:[“标签1”、“标签2”,“tag3”),“clientReferenceId ": "字符串"},{" id ": " 22222222 -...", ...}, {"id": "33333333-…",…}……], "totalResultCount": "string"}
  2. 如果知道内容项的ID,请使用获得/ api / ContentItems / {id}.返回的内容项对象的格式如下:
    {"id": "11111111-…","contentTypeId": "string", "contentTypeName": "string", "name": "string", "description": "string", "language": "string", "alreadyPublished": true, "details": {}, "currentVersion": 0, "usage ": 0, "createdAt": "string", "createdBy": {"id": "string", "name": "string", "thumbnail": "string"}, "updatedAt": "string", "updatedBy": "StructuredContent.Models "。UserInfo", "stateId": 0, "tags": ["tag1", "tag2", "tag3"], "clientReferenceId": "string"}
  3. 从返回的内容项对象复制值,并将它们粘贴到您自己的PUT请求体中。然后替换您想要更改的值。body参数必须为如下格式:
    {"id": "11111111-…","contentTypeId": "string", "contentTypeName": "string", "name": "我的新名字","description": "我的新描述就在这里","language": "string", "alreadyPublished": true, "details": {}, "currentVersion": 0, "usage ": 0, "createdAt": "string", "createdBy": {"id": "string", "name": "string", "thumbnail": "string"}, "updatedAt": "string", "updatedBy": "StructuredContent.Models. "UserInfo", "stateId": 0, "tags": ["tag1", "tag2", "tag3", "我的新标签"],"clientReferenceId": "string"}
    注意:不能修改ID。
  4. 构造PUT请求的URL,以包含路径参数(id)和可选查询参数(发布).例子:如果id是"11111111-1111-1111",并且您希望立即发布更改,则URL将如下:
    https://dnnapi.com/content/api/ContentItems/11111111-1111-1111?publish=true
记住:在报头中包含身份验证令牌。