项目实战接口开发SpringBoot

一、springboot官方demo开发

  1. 依赖包和父:pom.xml
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.14</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.7.14</version>
    </dependency>
</dependencies>
  1. 新建 SampleController.java
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@EnableAutoConfiguration
public class SampleController {
    @RequestMapping("/")
    @ResponseBody
    String home(){
        return "Hello World!";
    }

    public static void main(String[] args) {
        SpringApplication.run(SampleController.class,args);
    }
}
  1. 运行结果


    说明:内置了web服务器

二、使用SpringBoot开发get方法接口

返回cookie信息的get接口开发

  1. 新建Application.java 入口
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan("com.course.server")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}
  1. com.course.server 新建MyGetMethod.java
@RestController
public class MyGetMethod{
    @RequestMapping(value="/getCookies",method=RequestMethod.GET)
    public String getCookies(){
        return "恭喜你获得cookies信息成功";    
    }
}
  1. Resource下新建文件:application.properties
server.port=${port:8888}
  1. 启动后访问

  2. 获得cookies
    修改com.course.server.MyGetMethod.java 代码:

package com.course.server;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;

@RestController
public class MyGetMethod {
    @RequestMapping(value = "/getCookies",method= RequestMethod.GET)
    public String getCookies(HttpServletResponse response){
        // HttpServletRequest 装请求信息得类
        // HttpServletResponse 装响应信息得类
        Cookie cookie = new Cookie("login", "true");
        response.addCookie(cookie);
        return "恭喜你获得cookies信息成功";
    }
}

运行:

三、一个要求携带cookie信息访问的get接口开发

  1. MyGetMethod.java 新增方法:
@RestController
public class MyGetMethod{
    @RequestMapping(value="/get/with/Cookies",method=RequestMethod.GET)
    public String getWithCookies(HttpServletRequest request){
        // HttpServletRequest 装请求信息的类
        // HttpServletResponse 装响应信息的类
        Cookie[] cookies = request.getCookies();
        if(Objects.isNull(cookies)){
            return "你必须携带cookies信息来";        
        }
        for(Cookie cookie:cookies){
            if(cookie.getName().equals("login") &&
             cookie.getValue().equals("true")){
                 return "恭喜你访问成功!";           
             }                
        }
        return "你必须携带cookies信息来";    
    }
}
  1. Jemeter访问
    1)加一个线程组
    2)加一个HTTP请求
    3)加一个HTTP Cookie管理器


    4)加一个查看结果树

四、需要携带参数的get请求两种开发方式

4.1 方式1:url:key=value&key=value

@RestController
public class MyGetMethod{
    @RequestMapping(value="/get/with/param",method=RequestMethod.GET)
    public Map<String,Integer> getList(@RequestParam Integer start,
                                       @RequestParam Integer end){
        Map<String,Integer> myList = new HashMap<>();
        myList.put("鞋",500);
        myList.put("衣服",200);
        myList.put("干脆面",1);
        return myList;                                                                 
    }
}

结果:

4.2 方式2:url:ip:port/get/with/param/10/20

@RequestMapping(value = "/get/with/param/{start}/{end}",method = RequestMethod.GET)
public Map<String,Integer> getList(@RequestParam(required = false) Integer start,
                                   @RequestParam(required = false) Integer end){
    Map<String,Integer> myList = new HashMap<>();
    myList.put("鞋",500);
    myList.put("衣服",200);
    myList.put("干脆面",1);
    return myList;
}

结果:

五、使用SpringBoot开发post方法接口

  1. 新增MyPostMethod.java
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.Cookie;

@RestController
@RequestMapping("/v1")
public class MyPostMethod{
    // 这个变量用来装我们的cookies信息
    private static Cookie cookie;
    // 用户登录成功获取到cookies,然后再访问其他接口获取到列表
    
    @RequestMapping(value="/login",method=RequestMethod.POST)
    @ApiOperation(value="登陆接口,成功后获取cookies信息",httpMethod="POST")
    public String login(HttpServletResponse response,
                        @RequestParam(value="userName",required=true) String userName,
                        @RequestParam(value="password",required=true) String password){
        if(userName.equals("zhangsan")&&password.equals("123456")){
            cookie = new Cookie("login","true");
            response.addCookie(cookie);
            return "恭喜你登录成功了!";
        }
        return "用户名或者密码错误!";
    }
}
  1. 在Jmeter中测试该接口

     

     

     

六、Cookie验证和返回用户列表的post接口开发

  1. 新增lombok依赖
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>RELEASE</version>
    <scope>compile</scope>
</dependency>
  1. 新增类 com/course/bean/User.java
package com.course.bean;
import lombok.Data;

@Data
public class User {
    private String userName;
    private String password;
    private String name;
    private String age;
    private String sex;
}
  1. 新增类 com/course/server/MyPostMethod.java
package com.course.server;
import com.course.bean.User;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@RestController
@RequestMapping("/v1")
public class MyPostMethod {
    // 这个变量用来装我们的cookies信息
    private static Cookie cookie;
    // 用户登录成功获取到cookies,然后再访问其他接口获取到列表

    @RequestMapping(value="/login",method= RequestMethod.POST)
    public String login(HttpServletResponse response,
                        @RequestParam(value="userName",required=true) String userName,
                        @RequestParam(value="password",required=true) String password){
        if(userName.equals("zhangsan")&&password.equals("123456")){
            cookie = new Cookie("login","true");
            response.addCookie(cookie);
            return "恭喜你登录成功了!";
        }
        return "用户名或者密码错误!";
    }

    @RequestMapping(value="/getUserList",method = RequestMethod.POST)
    public String getUserList(HttpServletRequest request,
                            @RequestBody User u){
        // 获取cookies
        Cookie[] cookies = request.getCookies();
        // 验证cookies是否合法
        for (Cookie c:cookies){
            if (c.getName().equals("login") && c.getValue().equals("true") && u.getUserName().equals("zhangsan") && u.getPassword().equals("123456")){
                User user = new User();
                user.setName("lisi");
                user.setAge("14");
                user.setSex("man");
                return user.toString();
            }
        }
        return "参数不合法";
    }
}
  1. 启动Application.java
  2. 使用Jemeter测试接口
    1)新建线程组
    2)新增HTTP Header Manager


    3)新增HTTP Cookie Manager


    4)新增HTTP Request


    5)添加结果树

  • 33
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ctrip携程网全接口开发是指通过携程网提供的开放接口,实现与携程网进行数据交互和业务调用的开发过程。 首先,为了进行携程网全接口开发,我们需要申请携程网的开放接口使用权限,并获得开放接口的API文档,其中包含了携程网提供的各种接口和参数说明。 接下来,我们可以根据需求选择合适的接口进行开发。例如,如果我们需要获取携程网的酒店信息,我们可以使用携程网提供的酒店查询接口,通过传递相应的参数(如城市,入住日期等),获取到携程网上的酒店信息。同样地,我们也可以使用其他接口如航班查询、景点门票查询等,实现相应的功能。 在具体开发过程中,我们需要按照API文档的要求,通过编程语言(如Java、Python等)实现对应接口的调用。一般来说,我们需要使用HTTP协议发送请求,并通过携程网提供的API密钥进行身份验证。 在接口调用过程中,我们可以根据接口的返回结果进行相应的数据处理和业务逻辑实现。例如,我们可以将携程网返回的酒店信息进行解析和展示,或者将航班信息进行筛选和排序。 最后,在开发完成后,我们需要对接口进行测试和调试,确保接口的正常运行和稳定性。如果遇到问题或者有改进的地方,我们可以通过联系携程网的技术支持团队来获得帮助和解决方案。 综上所述,携程网全接口开发是通过携程网提供的开放接口,实现与携程网的数据交互和业务调用的开发过程。通过合理地使用携程网的开放接口,我们可以开发出各种与旅行相关的应用程序,提供更加便捷和个性化的旅行服务。 ### 回答2: 携程网全接口开发是指利用携程网提供的开放接口,通过API(Application Programming Interface)来与携程网的系统进行数据交互和功能扩展。 携程网全接口开发主要用于企业或个人的网站、应用程序等与携程网进行数据整合和业务对接。通过携程网的全接口开发,可以实现以下功能: 1. 商品搜索和展示:通过携程网的全接口,可以实现对携程网上的酒店、机票、火车票等产品进行搜索和展示,包括价格、库存、预订等信息。 2. 产品预订和下单:通过全接口开发,可以实现对携程网上的产品进行预订和下单操作,用户可以直接在第三方网站或应用程序上完成预订和支付。 3. 订单管理:利用携程网全接口,可以获取用户在携程网上的订单信息,并进行订单状态查询、修改、退改签等操作。 4. 支付接口集成:通过全接口开发,可以将第三方支付接口集成到携程网上,实现在线支付功能。 5. 数据统计和分析:携程网全接口还提供了数据统计和分析接口,可以获取预订数据、用户行为数据等,以便进行业务分析和优化。 总之,携程网全接口开发为第三方企业或个人提供了与携程网进行数据交互和业务对接的能力,使得企业或个人能够更加方便地利用携程网的资源和服务,提升业务效益和用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值