当用户访问 mydomain.com/api/1.json 时,我成功地使用 Dancer2::Plugin::REST 从我的 Web 服务器返回 JSON。同时保留此功能,我如何使用 Dancer2::Plugin2::REST 返回用户访问 mydomain.com/api/1.xml 时的 XML ?
我的 config.yml 包含此部分:
serializers:
json: JSON
yml: YAML
yaml: YAML
dump: Dumper
xml: XML
Run Code Online (Sandbox Code Playgroud)
我的 lib/MyApp/API.pm 看起来像这样:
package MyApp::API;
use Dancer2;
use Dancer2::Plugin::REST;
prepare_serializer_for_format;
get '/1.:format' => sub {
return { 'temperature' => '10', 'date' => '2019-09-01' };
};
true;
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,我在运行时得到了正确的 JSON 片段:
curl -H 'Accept-Type: text/json' https://<mydomain>/api/1.json
Run Code Online (Sandbox Code Playgroud)
但是当我运行时:
curl -H 'Accept-Type: text/xml' https://<mydomain>/api/1.xml
Run Code Online (Sandbox Code Playgroud)
或者
curl -H 'Accept-Type: application/xml' https://<mydomain>/api/1.xml
Run Code Online (Sandbox Code Playgroud)
或者
curl https://<mydomain>/api/1.xml
Run Code Online (Sandbox Code Playgroud)
我收到服务器错误响应:
Internal Server …Run Code Online (Sandbox Code Playgroud) 在我们的 Gitlab 服务器上,我有两个存储库,其中一个存储库(“EPSILON-SDK-C”)是另一个存储库的子模块。当我在我的开发机器上本地运行 gitlab-runner 时
sudo gitlab-runner exec docker build_fw
Run Code Online (Sandbox Code Playgroud)
gitlab-runner 找不到子模块,如 gitlab-runner 的输出所示:
Updating/initializing submodules...
Submodule 'thirdparty/EPSILON-SDK-C' (/home/me/gitlab_repos/EPSILON-SDK-C) registered for path 'thirdparty/EPSILON-SDK-C'
fatal: repository '/home/me/gitlab_repos/EPSILON-SDK-C' does not exist
fatal: clone of '/home/me/gitlab_repos/EPSILON-SDK-C' into submodule path '/builds/0/project-0/thirdparty/EPSILON-SDK-C' failed
Failed to clone 'thirdparty/EPSILON-SDK-C'. Retry scheduled
fatal: repository '/home/me/gitlab_repos/EPSILON-SDK-C' does not exist
fatal: clone of '/home/me/gitlab_repos/EPSILON-SDK-C' into submodule path '/builds/0/project-0/thirdparty/EPSILON-SDK-C' failed
Failed to clone 'thirdparty/EPSILON-SDK-C' a second time, aborting
ERROR: Job failed: exit code 1
FATAL: exit code 1
Run Code Online (Sandbox Code Playgroud)
然而,当我们的 Gitlab 服务器被提交触发时,Gitlab …