3.9.2. 服务配置

CUBA 应用中,service 的方法可以通过 REST API 访问,这些方法的列表需要配置在 xml 配置文件中,这个 xml 配置文件需要通过 web 或者 portal 模块的 cuba.rest.servicesConfig 应用程序属性来指定,比如在 web-app.properties 文件中:

  1. cuba.rest.servicesConfig = +com/company/myapp/rest-services.xml

rest-services.xml 文件需要放在 web 或者 portal 模块的根目录(比如 com.company.myapp)。文件内容格式是由 rest-services-v2.xsd shema 来定义,示例:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <services xmlns="http://schemas.haulmont.com/cuba/rest-services-v2.xsd">
  3. <service name="myapp_SomeService">
  4. <method name="sum">
  5. <param name="number1"/>
  6. <param name="number2"/>
  7. </method>
  8. <method name="emptyMethod"/>
  9. <method name="overloadedMethod">
  10. <param name="intParam" type="int"/>
  11. </method>
  12. <method name="overloadedMethod">
  13. <param name="stringParam" type="java.lang.String"/>
  14. </method>
  15. </service>
  16. </services>

如果服务没有重载带有相同数量参数的方法的话,方法参数的类型可以省略。否则,参数类型必须要显式定义。

关于配置和调用服务的示例可以参考 调用服务方法(GET) 章节。

如果某些服务的方法需要在 匿名访问被禁用的情况下进行无认证访问,那么可以在服务配置文件中给这个方法添加 anonymousAllowed="true" 属性:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <services xmlns="http://schemas.haulmont.com/cuba/rest-services-v2.xsd">
  3. <service name="myapp_SomeService">
  4. <method name="sum" anonymousAllowed="true">
  5. <param name="number1"/>
  6. <param name="number2"/>
  7. </method>
  8. </service>
  9. </services>