欢迎访问RestCloud企业级微服务低代码开发平台官网
技术服务QQ群:586512692

无代码发布服务

1.创建应用

  创建应用的目的是为了给服务按照一定的业务领域或者系统对服务进行划分 可以基于应用视角来对服务的各种资源(Class类,配置数据,权限数据,图片资源)等进行管理和开发,如果不想创建应用 可以直接进入系统的示例应用中进行服务开发.

点击服务开发->所有应用->新建应用

点击新建应用

应用id必须唯一(字母或数字组成)填写应用名称后点击提交即可创建一个应用
应用建立后点击应用即可打开应用服务开发界面如下

点击数据模型进入创建数据模型界面

2.创建实体数据模型

  实体数据模型可以理解为与数据库表一一对应的配置数据,即把数据库表的所有字段在数据模型中建立一个配置信息
平台通过实体数据模型的配置信息即可以发布CRUD服务或者基于数据模型生成MVC的Java代码

点击新增->实体模型进入新增实体数据模型功能

在下拉菜单中选择实体数据模型


这里数据库类型选为MongoDB即把数据存储在MongoDB数据库中(如果要存在关系数据库中也可以在下拉框中选择)
数据库表可以填写一个MonogDB中存在的表(这里填为UserModel),如果表不存在平台会自动创建MongoDB的数据库表
点击提交即可创建一个实名为Hello.UserModel的实体数据模型

点击刚建好的数据模型前面的+号展开数据列配置表

系统会自动给定一些默认字段(除了id字段外其他默认字段也可以删除),这里新增加两个字段userId,userName
新增列后点击保存即可保存数据列的配置信息
这样一个实体数据模型就建立完成了,可以进入下一步对这个数据模型发布Rest服务了

3.发布Rest服务

  针对上一步中建立的Hello.UserModel数据模型点击Action->发布服务

系统将弹出发布服务的界面

系统默认提供4个服务,点击提交即可发布这4个服务
系统如果提示成功发布4个服务,恭喜您已经为Hello.UserModel数据模型创建了4个服务
下一步对已发布的服务进行测试

4.测试Rest服务

  针对上一步中发布的服务可以进行修改或测试
在服务开发界面中点击Home标签返回开发首页->点击Rest服务即可以看到刚才发布的4个服务

针对/rest/Hello/usermodels/save服务的Action点击测试将出现服务测试界面

在输入参数中增加userId,userName两个参数,点击开始测试系统将返回测试结果
ResponseBody中返回"state":true,"msg":"1"即表示测试成功




自动生成服务代码

进入应用开发的数据模型界面针对任意一个数据模型可以快速生成Java代码

这里选择Hello.UserModel数据模型来生成Java代码,点击生成代码出现代码生成界面.

代码生成路径可以在core.properties文件的ProjectSrcPath属性中指定为Eclipse工程的路径
点击提交即可以自动生成java代码
如果数据模型是MonogDB的则系统会自动生成基于MongoDB的数据持久层Dao代码
如果数据模型是Rdbs关系数据库的系统会自动生成关系数据库的Dao层代码

在Eclipse中查看生成的Java代码




HelloWord示例

使用Eclipse快速发布或调用HelloWord的Rest服务



package cn.restcloud.example.controller;

import org.bson.Document;
import cn.restcloud.example.model.UserModel;
import cn.restcloud.framework.client.RestClient;
import cn.restcloud.framework.core.annotation.BeanConfig;
import cn.restcloud.framework.core.annotation.BeanType;
import cn.restcloud.framework.core.annotation.MethodType;
import cn.restcloud.framework.core.annotation.Param;
import cn.restcloud.framework.core.annotation.Params;
import cn.restcloud.framework.core.annotation.RestConfig;
import cn.restcloud.framework.core.util.PrintUtil;
import cn.restcloud.framework.validate.ValidType;
import cn.restcloud.framework.view.base.DocAndView;
import cn.restcloud.framework.view.util.ViewUtil;

/**
 * HelloWorld 服务示例
 * @author cn.restcloud
 *
 */
@BeanConfig(
		appId = "example",
		beanId = "HelloWorld",
		beanName = "HelloWorld我是一个Rest服务类",
		beanType = BeanType.CONTROLLER,
		autowired = true,
		singleton = true,
		hotMode = true
		)
@RestConfig(url = "/rest/example/hello")
public class HelloWorld {
	
	/**
	 * 浏览器中输入 http://localhost:8080/restcloud/rest/example/hello/admin 即可访问本服务
	 * @param userId
	 * @return json string
	 * @throws Exception
	 */
	@RestConfig(configName = "HelloWorld你好",configId="HelloWord",method = MethodType.GET,url = "/{userid}")
	@Params({
		@Param(id = "userid", name = "用户名",required=true)
	})
	public DocAndView helloWorld(String userId) throws Exception{
		String msg=userId+"您好!!!!";
		String jsonStr="{\"msg\":\""+msg+"\"}";
		return ViewUtil.getJsonView(jsonStr);
	}
	
	/**
	 * 浏览器中输入 http://localhost:8080/restcloud/rest/example/hello/testParams?num=1  即可访问本服务
	 * @return
	 * @throws Exception
	 */
	@RestConfig(configName = "输入参数验证",configId="HelloWordParams",method = MethodType.GET,url = "/testParams")
	@Params({
		@Param(id = "num", name = "请传入一个数字",required=true,validateBeanId=ValidType.ISNUMERIC,tip="必须输入一个数字"),
	})
	public DocAndView paramsTest(int num) throws Exception{
//		int num=Integer.valueOf(RequestUtil.getString("num")); //也可以使用RequestUtil取传入参数
		num++;
		String jsonStr="{\"num\":\""+num+"\"}";
		return ViewUtil.getJsonView(jsonStr);
	}
	
	@RestConfig(configName = "传入JSON字符串转换为Java Bean对像",configId="HelloWordBeanTest",method = MethodType.POST,url = "/javabean",requestBody=true)
	@Params({
		@Param(id = "RequestBody", name = "请求一个JSON字符串",required=true,type="UserModel")
	})
	public DocAndView getJson2JavaBean(UserModel userObj) throws Exception{
		String returnStr="userid="+userObj.getUserId()+",username="+userObj.getUserName();
		PrintUtil.o(returnStr);
		return ViewUtil.getJsonView(userObj); //直接把java bean转为json再输出
	}
	
	/**
	 * 浏览器中输入 http://localhost:8080/restcloud/rest/example/hello/call  即可访问本服务,返回值为2
	 * 要调用另一个由RestCloud发布的Rest服务本机或外部服务器发布的均可以
	 * @return
	 * @throws Exception
	 */
	@RestConfig(configName = "RestClient调用另一个服务器发布的HelloWord服务",method = MethodType.GET,url = "/call")
	public DocAndView testRequestService() throws Exception{
		RestClient rc=RestClient.getInstance();
		rc.setServiceConfigId("HelloWordParams");//由RestCloud开发的服务可以直接通过configId来查找服务地址,不用指明url
		rc.addInParams("num", "1");//增加输入参数
		rc.get(); //执行get请求
		Document doc=rc.getDocument(); //调用结果转换为Document对像,也可以转换一个Java Bean对像
		return ViewUtil.getJsonView(doc);
	}
	
}
版权所有 @ 谷云科技(广州)有限责任公司,粤ICP备17112776号