Silverstripe Restfulapi 配置
Silverstripe Restfulapi configuration
我尝试使用 silverstripe 4 的 Restfulapi 插件,我的配置是:
integre\About:
api_access: true
integre\Home:
api_access: true
Image:
api_access: true
File:
api_access: true
integre\Theatre:
api_access: true
# RestfulAPI config
Colymba\RESTfulAPI\RESTfulAPI:
authentication_policy: false
access_control_policy: 'ACL_CHECK_CONFIG_AND_MODEL'
cors:
Enabled: true
Allow-Origin: '*'
Allow-Headers: '*'
Allow-Methods: 'OPTIONS, POST, GET, PUT, DELETE'
Max-Age: 86400
但是当我尝试 http://localhost/integre/api/Theatre/1 我收到
{
"code": 400,
"message": "Model does not exist. Received 'Theatre'."
}
如何解决这个问题?
您的问题是您使用的是带命名空间的 class,但未正确配置它以在 API 中使用,因此无法正确解析。看着 DefaultQueryHandler
, you need to define a class name map for this:
Colymba\RESTfulAPI\QueryHandlers\DefaultQueryHandler:
models:
Theatre: integre\Theatre
这告诉查询处理程序在请求 Theatre
模型时加载 integre\Theatre
。请注意,您的配置中的图像和文件引用也缺少它们的命名空间。
我尝试使用 silverstripe 4 的 Restfulapi 插件,我的配置是:
integre\About:
api_access: true
integre\Home:
api_access: true
Image:
api_access: true
File:
api_access: true
integre\Theatre:
api_access: true
# RestfulAPI config
Colymba\RESTfulAPI\RESTfulAPI:
authentication_policy: false
access_control_policy: 'ACL_CHECK_CONFIG_AND_MODEL'
cors:
Enabled: true
Allow-Origin: '*'
Allow-Headers: '*'
Allow-Methods: 'OPTIONS, POST, GET, PUT, DELETE'
Max-Age: 86400
但是当我尝试 http://localhost/integre/api/Theatre/1 我收到 { "code": 400, "message": "Model does not exist. Received 'Theatre'." }
如何解决这个问题?
您的问题是您使用的是带命名空间的 class,但未正确配置它以在 API 中使用,因此无法正确解析。看着 DefaultQueryHandler
, you need to define a class name map for this:
Colymba\RESTfulAPI\QueryHandlers\DefaultQueryHandler:
models:
Theatre: integre\Theatre
这告诉查询处理程序在请求 Theatre
模型时加载 integre\Theatre
。请注意,您的配置中的图像和文件引用也缺少它们的命名空间。