快嘉接口定义指南

快嘉代码生成能力平台目前一共提供了三种接口的代码生成模板,分别是apiControllers、appControllers和genericControllers,其中apiControllers和appControllers为封装好的接口类型,可以分别作为开放平台接口选型和移动端接口选型,genericControllers比较灵活,可以适应绝大部分接口场景。

下面就以genericControllers为例介绍如何设计接口。

请求body为空默认响应

<bundle>
	<packets>
	</packets>
	<genericControllers>
		<genericController name="AppVersionGenericController"
			version="" path="/generic/version/" clientName="AppVersionGenericClient"
			clientParent="com.fastjrun.client.BaseGenericClient" remark="版本接口"
			tags="基本接口">
			<service name="versionService" class="VersionServiceRestGeneric">
				<method name="latests" version="" path="latests" remark="最近版本列表">
				</method>
			</service>
		</genericController>
	</genericControllers>
</bundle>

以上接口访问路径、请求参数、示例和响应参数、示例如下 输入图片说明

请求body有值默认响应

<bundle>
    <packets>
        <packet class="packet.generic.RegistserRestRequestBody" parent="com.fastjrun.packet.BaseRequestBody">
            <field name="loginId" dataType="String" length="12" canBeNull="false"
            remark="登录名" />
        </packet>
    </packets>
    <genericControllers>
        <genericController name="AppVersionGenericController"
        version="" path="/generic/version/" clientName="AppVersionGenericClient"
        clientParent="com.fastjrun.client.BaseGenericClient" remark="版本接口"
        tags="基本接口">
            <service name="versionService" class="VersionServiceRestGeneric">
                <method name="latests" version="" path="latests" remark="最近版本列表">
                    <request class="packet.generic.RegistserRestRequestBody" />
                </method>
            </service>
        </genericController>
    </genericControllers>
</bundle>

如上所示,请求参数定义为packet,class为类名,该packet只有一个参数loginId,类型为String,长度12,不可为空,备注为登录名。 该请求参数在接口系统中示例 输入图片说明 以上接口访问路径、请求参数、示例和响应参数、示例如下 输入图片说明

响应有值,且响应报文中如何定义list

<bundle>
    <packets>
        <packet class="packet.generic.RegistserRestRequestBody" parent="com.fastjrun.packet.BaseRequestBody">
            <field name="loginId" dataType="String" length="12" canBeNull="false"
            remark="登录名" />
        </packet>
        <packet class="packet.generic.VersionListResponseBody" parent="com.fastjrun.packet.BaseResponseBody">
            <list name="list" class="packet.generic.Version">
                <field name="id" dataType="Long" length="64" canBeNull="false"
                remark="版本Id" />
                <field name="versionNo" dataType="String" length="64"
                canBeNull="false" remark="版本号" />
                <field name="versionInfo" dataType="String" length="400"
                canBeNull="false" remark="版本信息" />
            </list>
        </packet>
    </packets>
    <genericControllers>
        <genericController name="AppVersionGenericController"
        version="" path="/generic/version/" clientName="AppVersionGenericClient"
        clientParent="com.fastjrun.client.BaseGenericClient" remark="版本接口"
        tags="基本接口">
            <service name="versionService" class="VersionServiceRestGeneric">
                <method name="latests" version="" path="latests" remark="最近版本列表">
                    <request class="packet.generic.RegistserRestRequestBody" />
                    <response class="packet.generic.VersionListResponseBody" />
                </method>
            </service>
        </genericController>
    </genericControllers>
</bundle>

如上所示,VersionListResponseBody中增加list节点,name为键值,class为list中存储对象类名。 VersionListResponseBody在接口系统中示例

输入图片说明

以上接口访问路径、请求参数、示例和响应参数、示例如下 输入图片说明 如图中所示,list对应json结构为数组。

备注 :genericController没有响应body时,系统会提供默认响应;如果设置了响应body,则以响应body为返回值。

请求有值,且请求报文中如何增加object

<?xml version="1.0" encoding="UTF-8"?>
<bundle>
    <packets>
        <packet class="packet.generic.RegistserRestRequestBody" parent="com.fastjrun.packet.BaseRequestBody">
            <field name="loginId" dataType="String" length="12" canBeNull="false"
            remark="登录名" />
            <object name="obj" class="packet.generic.RegistserRestRequestBodyObj">
                <field name="id" dataType="Long" length="64" canBeNull="false"
                remark="版本Id" />
            </object>
        </packet>
        <packet class="packet.generic.VersionListResponseBody" parent="com.fastjrun.packet.BaseResponseBody">
            <list name="list" class="packet.generic.Version">
                <field name="id" dataType="Long" length="64" canBeNull="false"
                remark="版本Id" />
                <field name="versionNo" dataType="String" length="64"
                canBeNull="false" remark="版本号" />
                <field name="versionInfo" dataType="String" length="400"
                canBeNull="false" remark="版本信息" />
            </list>
        </packet>
    </packets>
    <genericControllers>
        <genericController name="AppVersionGenericController"
        version="" path="/generic/version/" clientName="AppVersionGenericClient"
        clientParent="com.fastjrun.client.BaseGenericClient" remark="版本接口"
        tags="基本接口">
            <service name="versionService" class="VersionServiceRestGeneric">
                <method name="latests" version="" path="latests" remark="最近版本列表">
                    <request class="packet.generic.RegistserRestRequestBody" />
                    <response class="packet.generic.VersionListResponseBody" />
                </method>
            </service>
        </genericController>
    </genericControllers>
</bundle>

如上所示,RegistserRestRequestBody中增加object节点,name为键值,class为对应类名。 RegistserRestRequestBody在接口系统中示例 输入图片说明

请求路径中增加pathParam

<bundle>
    <packets></packets>
    <genericControllers>
        <genericController name="AppVersionGenericController"
        version="" path="/generic/version/" clientName="AppVersionGenericClient"
        clientParent="com.fastjrun.client.BaseGenericClient" remark="版本接口"
        tags="基本接口">
            <service name="versionService" class="VersionServiceRestGeneric">
                <method name="latests" version="" path="latests" remark="最近版本列表">
                    <pathvariables>
                        <pathvariable name="appKey" dataType="String" length="32"
                        remark="分配客户端key" />
                        <pathVariable name="accessTime" dataType="Long"
                        length="11" remark="访问时间戳" />
                    </pathvariables>
                </method>
            </service>
        </genericController>
    </genericControllers>
</bundle>

如上所示,method节点下增加pathvariables节点,pathvariables节点下设置pathvariable节点,pathvariable按接口文档中定义顺序排列在url中。

以上接口访问路径、请求参数、示例和响应参数、示例如下

输入图片说明

请求路径中增加queryParam

<bundle>
    <packets></packets>
    <genericControllers>
        <genericController name="AppVersionGenericController"
        version="" path="/generic/version/" clientName="AppVersionGenericClient"
        clientParent="com.fastjrun.client.BaseGenericClient" remark="版本接口"
        tags="基本接口">
            <service name="versionService" class="VersionServiceRestGeneric">
                <method name="latests" version="" path="latests" remark="最近版本列表">
                    <parameters>
                        <parameter name="pageNum" dataType="Integer" length="11"
                        canBeNull="true" remark="每页返回多少条记录" />
                        <parameter name="pageIndex" dataType="Integer" length="11"
                        canBeNull="true" remark="页索引" />
                    </parameters>
                </method>
            </service>
        </genericController>
    </genericControllers>
</bundle>

如上所示,method节点下增加parameters节点,parameters节点下设置parameter节点。

以上接口访问路径、请求参数、示例和响应参数、示例如下 输入图片说明

请求头中增加headerParam

<bundle>
    <packets></packets>
    <genericControllers>
        <genericController name="AppVersionGenericController"
        version="" path="/generic/version/" clientName="AppVersionGenericClient"
        clientParent="com.fastjrun.client.BaseGenericClient" remark="版本接口"
        tags="基本接口">
            <service name="versionService" class="VersionServiceRestGeneric">
                <method name="latests" version="" path="latests" remark="最近版本列表">
                    <headvariables>
                        <headvariable name="salt" dataType="String" length="8"
                        remark="加密盐值" />
                        <headvariable name="sign" dataType="String" length="32"
                        remark="签名" />
                    </headvariables>	
                </method>
            </service>
        </genericController>
    </genericControllers>
</bundle>

如上所示,method节点下增加headvariables节点,headvariables节点下设置headvariable节点。

以上接口访问路径、请求参数、示例和响应参数、示例如下 输入图片说明

其它(略)

还有一些其它示例罗列下,读者可自行试验。

  • 报文list节点中嵌套list
  • 报文list节点中含object
  • 报文object节点中嵌套object
  • 报文object节点中含list

转载于:https://my.oschina.net/fastjrun/blog/1784695

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值