禅道18.0_beta如何添加自己的api接口

发布时间 2023-11-07 11:17:17作者: 猝死的路上

有自定义功能,但又不想修改原有的api接口,可以添加新的api接口,这样不会很大影响以后的版本升级,具体步骤

1.在 config/routes.php 中添加映射,为了方便维护,
在 $config->routes = $routes; 这一句代码的上面进行添加

//添加的 api
$routes['/tasks/project']        = 'taskproject';

2.添加具体的请求实体类,在 api/v1/entries/ 下面添加 taskproject.php,这个名字要和 在 routes中的名字一样,不然禅道会找不到
内容

<?php
/**
 * The tasks entry point of ZenTaoPMS.
 *
 * @copyright   Copyright 2009-2021 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
 * @license     ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
 * @author      Chunsheng Wang <chunsheng@cnezsoft.com>
 * @package     entries
 * @version     1
 * @link        http://www.zentao.net
 */
class taskprojectEntry extends entry
{
    public function post()
    {
      //写自己的业务逻辑
    }
}

注意要把禅道的版权信息带上,post()方法处理post请求,get()方法处理get请求,其他的类似 put 等等
这个类名 taskprojectEntry 一定是这个,在 routes 里面的 taskproject再加上 Entry,这是禅道代码定死的,不能改变

3.如何请求
逻辑实现后,请求地址为 http://127.0.0.1/api.php/v1/tasks/project ,请求参数一般使用json,例如

{"extraNumber":"38405612"}

在post方法中,使用 $this->requestBody->extraNumber 来获取值