openresources / resourcehub_rest
提供基于OpenAPI V3模式的Drupal REST API插件。
1.0.0-alpha2
2023-12-06 13:23 UTC
Requires
- drupal/key_auth: ^2.1
- league/openapi-psr7-validator: ^0.16.1
This package is auto-updated.
Last update: 2024-09-06 14:51:28 UTC
README
本Drupal模块提供了一组Drupal REST插件,这些插件提供了一个方便的界面来创建ResourceHub资源及其相关Drupal实体。API使用OpenAPI V3模式进行文档化和验证,可以通过SwaggerUI进行浏览。
安装
本模块依赖于密钥认证Drupal模块和OpenAPI PSR-7消息(HTTP请求/响应)验证器,如果使用Composer安装本模块,这两个模块将被安装。
composer require openresources/resourcehub_rest
安装后,将进行一些Drupal配置更改,您可能希望将这些更改导出至版本控制。
使用
身份验证
在向REST API发送请求之前,您需要获取一个API密钥。API密钥与Drupal用户关联,用户的Drupal权限将决定通过API的写入访问权限,因此您需要确保用户拥有“网站管理员”或“内容编辑”角色之一。要获取API密钥,请导航到用户页面,例如user/1234/edit
,然后点击“密钥认证”选项卡。从这里,您需要点击“生成新密钥”。
发送请求
以下是一些CURL示例,但请参阅SwaggerUI以获取有关可用端点和请求参数的详细文档。
/resource
curl --request POST \
--url 'http://resourcehub.lndo.site/resource?_format=json' \
--header 'Content-Type: application/json' \
--header 'x-api-key: a593d7966687162200bec7929aac03a9' \
--data '
{
"published": false,
"title": "Testing title",
"summary": "<p>Testing <strong>summary</strong> out</p>",
"imageId": "c051c2f6-6aca-46f8-85cc-97e191537cac",
"audienceIntro": "string",
"primaryResource": {
"sectionType": "document",
"title": "A title",
"documentId": "b38da175-3c84-4bb4-95fe-d8b3e80c6d7e"
},
"content": [
{
"sectionType": "audio",
"audioUrl": "https://soundcloud.com/example/example",
"caption": "I'\''m a caption",
"title": "I'\''m a title",
"transcript": "<p>A transcript with <strong>Formatting</strong></p>"
},
{
"sectionType": "document",
"title": "HT",
"documentId": "157aa518-a4fb-4ed2-b9a7-c3a132a66ead"
},
{
"sectionType": "image",
"description": "string",
"imageId": "72cd12fd-21dc-4fb4-ab6d-52e177e04755",
"caption": "string"
},
{
"sectionType": "external_link",
"link": {
"text": "string",
"url": "string"
},
"summary": "string"
},
{
"sectionType": "text",
"text": "string"
},
{
"sectionType": "video",
"videoUrl": "https://www.youtube.com/watch?v=12345,
"caption": "string",
"title": "string",
"transcript": "string"
}
],
"audience": [
{
"name": "new audience"
}
],
"format": {
"name": "new format"
},
"topics": [
{
"name": "New topic"
}
],
"type": [
{
"name": "szdasd"
}
],
"relatedResources": [
{
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
}
'
/resource-image
curl --request POST \
--url 'http://resourcehub.lndo.site/resource-image?_format=json' \
--header 'Content-Disposition: file; filename="Example.jpg"' \
--header 'Content-Type: application/octet-stream' \
--header 'x-api-key: a593d7966687162200bec7929aac03a9' \
--data '.../9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgICAgJCAkKCgkNDgwODRMREBARExwUFhQWFBwrGx8bGx8bKyYuJSMlLiZENS8vNUROQj5CTl9VVV93cXecnNEBCAgICAkICQoKCQ0ODA4NExEQEBETHBQWFBYUHCsbHxsbHxsrJi4lIyUuJkQ1Ly81RE5CPkJOX1VVX3dxd5yc0f/CABEIAqgCqAMBIgACEQEDEQH/xAAcAAACAwEBAQEAAAAAAAAAAAAAAQIDBAUGBwj/2gAIAQEAAAAA+cSsiKUXDQ7ZILE65RTUISSlXZGEnECUGTZGy+KsjZKJOdk7hO2KcmTTktMrJU+DFGbSlZe512VxlNkVBJRiNNwqUWQjOuxWxjZaOzTCwJFlk7JthODtJKFjvWyNvztAOx3TRByFXYhqNcU41ycKYOmGKOautWQtktd+vVOy6Vspqws1IscSYrU5RuNRoPnLaV9jnCacFKKsahXKBCIlDPXjxZqoNtjASCXU6G2662btTvuZZXNkpWVTbd5ff87RO+QydRGyE3FSqK0hxhDPh5+OsGSbG5CHouphXVs7nRvsnOx2TnGwVgSG5KeuHV...'
/resource-document
curl --request POST \
--url 'http://resourcehub.lndo.site?_format=json' \
--header 'Content-Disposition: file; filename="Example.pdf"' \
--header 'Content-Type: application/octet-stream' \
--header 'x-api-key: a593d7966687162200bec7929aac03a9' \
--data '...+CmVuZG9iagp4cmVmCjAgNDEKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAxNjg3IDAwMDAwIG4gCjAwMDA0MTEwMjMgMDAwMDAgbiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMTE3IDAwMDAwIG4gCjAwMDAwMDAyMTcgMDAwMDAgbiAKMDAwMDAwMDMyNSAwMDAwMCBuIAowMDAwMDAwNDI1IDAwMDAwIG4gCjAwMDAwMDA1MzMgMDAwMDAgbiAKMDAwMDAwMDYzMyAwMDAwMCBuIAowMDAwMDAwNzQyIDAwMDAwIG4gCjAwMDAwMDA4NDMgMDAwMDAgbiAKMDAwMDAwMDk1MyAwMDAwMCBuIAowMDAwMDAxMDU0IDAwMDAwIG4gCjAwMDAwMDExNjQgMDAwMDAgbiAKMDAwMDAwMTI2NSAwMDAwMCBuIAowMDAwMDAxMzc1IDAwMDAwIG4gCjAwMDAwMDE0NzYgMDAwMDAgbiAKMDAwMDAwMTU4NiAwMDAwMCBuIAowMDAwMDAxNzkwIDAwMDAwIG4gCjAwMDAwMDE4ODEgMDAwMDAgbiAKMDAwMDAwMTk3NyAwMDAwMCBuIAowMDAwMDAyMDc2IDAwMDAwIG4gCjAwMDAwMDIxNzkgMDAwMDAgbiAKMDAwMDAwMjI2OCAwMDAwMCBuIAowMDAwMDAyMzYyIDAwMDAwIG4gCjAwMDAwMDI0NTkgMDAwMDAgbiAKMDAwMDAwMjU2MCAwMDAwMCBuIAowMDAwMDAyNjUzIDAwMDAwIG4gCjAwMDAwMDI3NDUgMDAwMDAgbiAKMDAwMDAwMjgzOSAwMDAwMCBuIAowMDAwMDAyOTM3IDAwMDAwIG4gCjAwMDAwMjQxNzQgMDAwMDAgbiAKMDAwMDEwMzgwNCAwMDAwMCBuIAowMDAwMTg5MjA1IDAwMDAwIG4gCjAwMDAyNDI5OTggMDAwMDAgbiAKMDAwMDI4NzYzNSAwMDAwMCBuIAowMDAwMzQ2MDExIDAwMDAwIG4gCjAwMDAzOTM3MDAgMDAwMDAgbiAKMDAwMDQxMTM0MCAwMDAwMCBuIAowMDAwNDExNDU5IDAwMDAwIG4gCnRyYWlsZXIKPDwKL1NpemUgNDEKL1Jvb3QgNDAgMCBSCi9JbmZvIDM5IDAgUgo+PgpzdGFydHhyZWYKNDExNTYzCiUlRU9G...'