• 0
  • 0
分享
  • Restful接口开发:创建一个简单实例——软件测试圈
  • 北极 2022-07-28 14:17:07 字数 3567 阅读 4089 收藏 0

一、Restful接口实例

通过构建一个Restful接口实例,更加直接深入了解Restful接口的开发。

二、构建一个简单实例

1.创建项目参考

https://blog.csdn.net/u010886217/article/details/85239110

2.项目结构

1.png

Maven项目结构

2.png

3.创建第一个controller测试类:HelloworldController

package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/helloworld")
public class HelloworldController {
    @GetMapping
    public Map<String,Object> sayHelloworld(){
        Map<String,Object> result=new HashMap<>();
        result.put("message","hello world!");
        result.put("message2","hello world 2!");
        result.put("message3","hello world 3!");
        return result;
    }
}

运行启动类:DemoApplication

3.png

4.测试刚刚命令,访问http://localhost:8080/helloworld,返回结果

4.png

三、构建一个复杂实例

1. DTO类:TvSeriesDto.class,功能:传输数据电视剧系列的对象

package com.example.demo;
import com.sun.xml.internal.ws.spi.db.DatabindingException;
import java.util.Date;
public class TvSeriesDto {
    private int id;
    private String name;
    private int seasonCount;
    private Date originRelease; 
    //构造函数
    public TvSeriesDto(){ 
    }
    public TvSeriesDto(int id,String name,int seasonCount,Date originRelease){
        this.id=id;
        this.name=name;
        this.seasonCount=seasonCount;
        this.originRelease=originRelease;
    }
    public int getId() {
        return id;
    } 
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    } 
    public void setName(String name) {
        this.name = name;
    } 
    public int getSeasonCount() {
        return seasonCount;
    } 
    public void setSeasonCount(int seasonCount) {
        this.seasonCount = seasonCount;
    }
    public Date getOriginRelease() {
        return originRelease;
    }
    public void setOriginRelease(Date originRelease) {
        this.originRelease = originRelease;
    }
}

2.    调用类

package com.example.demo; 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
@RestController
public class HelloworldController {
//    @GetMapping
    @RequestMapping("/helloworld")
    public Map<String,Object> sayHelloworld(){
        Map<String,Object> result=new HashMap<>();
        result.put("message","hello world!");
        result.put("message2","hello world 2!");
        result.put("message3","hello world 3!");
        return result;
    }
    /**
     * 获取所有电视节目列表
     * @return
     */
    @RequestMapping("/getall")
    public List<TvSeriesDto> getAll(){
 
        List<TvSeriesDto> list=new ArrayList<>();
        Calendar calendar=Calendar.getInstance();
        calendar.set(2016,Calendar.OCTOBER,12,0,0);
        list.add( new TvSeriesDto(1,"WestWorld",1,calendar.getTime()));
        return list;
    }
}

运行程序DemoApplication,访问http://localhost:8080/getall

5.png

3.修改日期格式(全局)

修改..\resources\application.properties文件为..\resources\application.yml,然后添加

spring:
  jackson:
    date-format: yyyy-MM-dd #如果使用字符串型表示,用这行设置
    timezone: GMT+8
    serialization:
      write-dates-as-timestamps: false #使用数值timestamp表示日期,false表示不用这数字;true表示用数字

重新访问接口http://localhost:8080/getall,则原始数据:

[{"id":1,"name":"WestWorld","seasonCount":1,"originRelease":1476201605562}]

当前数据:

[{"id":1,"name":"WestWorld","seasonCount":1,"originRelease":"2016-10-11"}]

注意yml文件格式

(1)每行缩进是两个空格

(2)冒号后面要有一个空格

6.png

(至此,一个基于springboot框架的初始项目构建好了)


作者:RayBreslin

原文链接:https://blog.csdn.net/u010886217/article/details/100424543

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   全球各地的企业每天都在发展变化着,以应对市场挑战,满足日益成熟的客户需求。即使是正在进行的技术进步也会使软件测试专家在实践的过程中更加专注和精确。  2021年给软件测试领域带来了新的技术解决方案,以及质量保证和软件测试的实现。与此同时,诸如敏捷、DevOps、DevSecOps和测试自动化等实践继续在整个软件测试周期中保持其相关性和应用。  而2022年软件测试和开发领域的一些强劲趋势主要有以下几个:  1、人工智能促进软件测试  《福布斯》的一篇题为《软件测试中的人工智能:机器人会代替你的位置吗?》中提到:“依赖技术完成高重复性任务的趋势,同时使人们能够专注于高价值的活动,如创造收入、...
            0 1 2192
            分享
          • 在Spring的配置中,Bean的scope属性中存在两种模式:singleton(单例模式)、prototype(多例模式)singleton 单例模式:对象在整个系统中只有一份,所有的请求都用一个对象来处理,如service和dao层的对象一般是单例的。为什么使用单例:因为没有必要每个请求都新建一个对象的时候,因为这样会浪费CPU和内存。prototype 多例模式:对象在整个系统中可以有多个实例,每个请求用一个新的对象来处理,如action。为什么使用多例:防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象的状态改变导致了对象对另一个请求做了错误的处理;...
            0 0 643
            分享
          •   技术背景  需要有一定的python基础,代码阅读能力;以及自动化测试思想。  去到任何一家企业,如果少不了自动化,必然会要搭建一套自动化测试框架!  那么问题随之而来,这框架如何选择呢?  如果是代码能力强,可以自行开发与设计,那要是不呢?KPI摆在那,总不能说不行吧!  不行,代表着真的不行,在测试职业领域真的没有什么测试的不行!作者回顾以往工作经历,测试从来没有说过不字。  不会安全测试,但总得会几样安全型测试工具吧,不济也该知道安全测试的目的和原理吧。  不会性能测试,但总得会使用工具吧,理解性能测试指标和知道如何设计性能测试场景吧。  不会单元测试,不会自动化测试?不会渗透测试?...
            0 0 945
            分享
          • 一、是什么NewmanNewman就是纽曼手机这个经典牌子,哈哈,开玩笑啦。。。别当真,简单地说Newman就是命令行版的Postman,查看官网地址。Newman可以使用Postman导出的collection文件直接在命令行运行,把Postman界面化运行的操作用命令行代替,如果不会Postman接口自动化测试,可以参考如何用Postman做接口自动化测试因为是命令行操作,因此可以配合jenkins做接口自动化测试。二、如何安装npm install -g newmanmac也可以用brew安装brew install newman三、如何...
            14 14 2488
            分享
          • Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。Wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以Wireshark看不懂HTTPS中的内容,如果是处理HTTP,HTTPS还是用Fiddler,其他协议比如TCP,UDP就用Wireshark.。第一部分:数据抓包打开“Wireshark”,选择下面抓包来源并点击“捕获”,如图:点击“开始”进行抓包,如图:抓包完成后点击左上角的“停止”图标即可结束...
            0 0 1128
            分享
      • 51testing软件测试圈微信