绝对实用教程:如何在PhalApi定制自己的在线文档模板?

PhalApi官方的在线文档,默认长这样:

QQ截图20181201145842.jpg

 
虽然有在线文档可以使用,但在实际情况下,考虑到项目需要显示自己的公司Logo、项目名称,以及其他一些样式的调整,因此这时可以使用自定义模板。
 
如何在PhalApi定制自己的在线文档模板??
实现起来很简单,就像我们平时开放网站页面那样,只需要把模板的路径修改一下即可。
 
在线文档共有两份模板,分别是:
 
第1份:在线列表页文档模板

 
第2份:在线详情页文档模板

 
也就是说,如果你只是想改项目的模板,那么就修改本地的; 如果你想分享给更多同学,就可以修改远程的,然后提交PR。
 
如何修改本地的在线文档列表页模板?
首先,把本地模板复制一份,放到自己的项目中。创建一个新目录 ./src/app/view,然后拷贝过去。
$ cp ./vendor/phalapi/kernal/src/Helper/api_list_tpl.php ./src/app/view/

 
然后,自由发挥,修改 ./src/app/view/api_list_tpl.php 模板中的内容或样式。
例如,加一个顶部的菜单项,追加以下代码:
      <a href="https://www.phalapi.net/" class="item">PhalApi</a>
<a href="http://docs.phalapi.net/#/v2.0/" class="item">文档</a>
<a href="http://qa.phalapi.net/" class="item">社区</a>

<!-- 新加一个菜单 -->
<a href="https://my.oschina.net/dogstar" class="item">dogstar的博客</a>

<div class="right menu">
接着保存。 
最后,这一步很关键,就是告诉PhalApi切换到你自己的模板文件。修改 ./public/docs.php 文件,然后在render渲染时修改为自己的模板路径。
例如,新加的菜单显示效果是:

QQ截图20181201155454.jpg

  
if (!empty($_GET['detail'])) {
$apiDesc = new \PhalApi\Helper\ApiDesc($projectName);
$apiDesc->render();
} else {
$apiList = new \PhalApi\Helper\ApiList($projectName);
$apiList->render(API_ROOT . '/src/app/view/api_list_tpl.php'); // 修改为自己的模板路径
}

再访问在线文档,就能看到自己的模板啦!
 
如何修改本地的在线文档接口详情页模板?修改在线详情页模板的做法和修改列表的类似,也是首先,复制一份:
$ cp ./vendor/phalapi/kernal/src/Helper/api_desc_tpl.php ./src/app/view/
然后,修改模板。
 
最后,切换模板。
if (!empty($_GET['detail'])) {
$apiDesc = new \PhalApi\Helper\ApiDesc($projectName);
$apiDesc->render(API_ROOT . '/src/app/view/api_desc_tpl.php');
// 修改为自己的模板路径
} else {
$apiList = new \PhalApi\Helper\ApiList($projectName);
$apiList->render(API_ROOT . '/src/app/view/api_list_tpl.php');
}
 
 小白接口的定制模板效果
例如,PhalApi官网的创新项目,小白接口的定制模板效果如下:

QQ截图20181201161026.jpg

 
在线文档链接是:http://pre.api.okayapi.com/docs.php?api=Ext.QrCode
 如何分享自己的模板和主题?
如果有好的模板要和主题,欢迎在下方回复留言,贴上源代码的链接 ^_^
 

2 个评论

这次(2.4)在撸在线文档代码时,是不是没走心?
api_desc_tpl.php 和 api_list_tpl.php 的2好页面搜索框样式居然不一致,会有能不能统一下CND资源文件
页脚有广告链接可以接受 ,但是你也把 PhalApi xxx 的版本信息代码同步上啊!

搞的我这个强迫症,看的死去活来的~
感谢提醒。

代码提交纪录:https://github.com/phalapi/kernal/commit/aa5201c436ccf75ed28a4dccf3a07f07460e4c5f
官方示例效果:http://demo.phalapi.net/docs.php
修复的小版本:https://github.com/phalapi/phalapi/releases/tag/2.4.2

要回复文章请先登录注册