【21天转型微服务】day2实操手册
【摘要】 主要分享一下微服务day2的基本操作及关键点
课程准备:
Demo下载:
点击下载settings.zip,解压获得settings.xml
一、Maven工程还原
1、首先是Maven Projects的还原Demo-Day2的工程
这里我们选择解压后的Demo文件目录
全选后,点击finish,我们就把需要的工程导入进来了
然后大家在这里就有问题了,Maven的工程还原有问题,我们需要借助课程提供的maven setting文件进行配置
点击下载settings.zip,解压获得settings.xml
进而导入CSEJavaSDK的依赖
这样我们就可以临时的将settings.xml作为临时的全局settings进行还原了
右键工程,进行还原
这里我们勾选中Force Update of Snapshots/Releases 然后点击OK,等待还原
二、AK/SK的获取及yaml文件的调整
1、AK/SK的获取
我们登录华为云控制台,然后找到【我的凭证】,管理访问密钥,新增即可
然后我们下载会得到一个csv文件,里面就是我们的AK/SK了
2、yaml文件的调整
打开工程中的microservice.yaml文件
将对应的AK和SK改成自己的即可
其实到这里就可以运行了,这里我们做一下测试,打开AppMain.java右键Run As ——>Jave Application
然后到华为云CSE控制台,我们发现今天的Demo已经在线了
三、在 provider 服务中开发 greeting
1、新建GreetingResponse.java
作为返回值的GreetingResponse类
在microservice.demo.training21days.provider.service包里新建GreetingResponse.java类
package microservice.demo.training21days.provider.service;
import java.util.Date;
public class GreetingResponse {
private String msg;
private Date timestamp;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Date getTimestamp() {
return timestamp;
}
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("GreetingResponse{");
sb.append("msg='").append(msg).append('\'');
sb.append(", timestamp=").append(timestamp);
sb.append('}');
return sb.toString();
}
}
2、新建Person.java
创建作为请求的Person类
package microservice.demo.training21days.provider.service;
public class Person {
private String name;
private Gender gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("Person{");
sb.append("name='").append(name).append('\'');
sb.append(", gender=").append(gender);
sb.append('}');
return sb.toString();
}
}
3、新建Gender.java
Gender枚举类型
package microservice.demo.training21days.provider.service;
public enum Gender {
MALE,
FEMALE
}
4、在HelloService中创建greeting方法
这里注意别忘了import引用
package microservice.demo.training21days.provider.service;
import java.util.Date;
import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@RestSchema(schemaId = "hello") // 该注解声明这是一个REST接口类,CSEJavaSDK会扫描到这个类,根据它的代码生成接口契约
@RequestMapping(path = "/provider/v0") // @RequestMapping是Spring的注解,这里在使用Spring MVC风格开发REST接口
public class HelloService {
@RequestMapping(path = "/hello/{name}", method = RequestMethod.GET)
public String sayHello(@PathVariable(value = "name") String name) {
return "Hello," + name;
}
@PostMapping(path = "/greeting")
public GreetingResponse greeting(@RequestBody Person person) {
GreetingResponse greetingResponse = new GreetingResponse();
if (Gender.MALE.equals(person.getGender())) {
greetingResponse.setMsg("Hello, Mr." + person.getName());
} else {
greetingResponse.setMsg("Hello, Ms." + person.getName());
}
greetingResponse.setTimestamp(new Date());
return greetingResponse;
}
}
5、运行provider服务并进行调用
好了,到这里如果我们直接运行,就会报错,因为之前的服务契约【其实就是WebApi】不同
也就是教程里说的
【直接启动有可能会因为与服务中心里记录的服务契约不一致而报错,此时可以考 虑删除服务中心内的provider服务记录,或升级provider服务的版本。】
所以我们把CSE控制台里的provider服务删除,再次运行AppMain.java即可
这时我们看到greeting这个接口已经过来了
我们借助PostMan进行本地调用
POST调用 http://127.0.0.1:8080/provider/v0/greeting
在Body中输入JSON格式数据
例如
{
"name":"JaneConan",
"gender":"MALE"
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
JaneConan2019/03/14 06:37:431楼编辑删除举报
华为云社区精选2019/03/14 09:31:59编辑删除举报
ilonc2019/03/14 14:06:12编辑删除举报
JaneConan2019/03/14 07:39:192楼编辑删除举报
jimzhke2019/03/29 06:46:503楼编辑删除举报
华为云社区精选2019/12/26 07:39:064楼编辑删除举报
https://bbs.huaweicloud.com/forum/thread-35507-1-1.html