簡單瞭解postman的函數調用

前言

  在日常工作中,我們會經常使用到postman,但是大多數情況下都只是,輸入路徑和入參,看能否調通,或是看結果是否符合預期。

  但是,這只是postman最基本最基本的功能。

  現在我遇到了一種需求:假設一個方法的入參需要其他方法的出參,此時你會怎麼做?最容易想到的就是先調用那個方法獲取結果,再複製到這個入參裏。

  可是如果一個參數有五個入參,分別需要填入另外五個方法的結果,此時你還要一個一個的運行,然後複製過來嗎?如果參數不止5個呢?

  下面我們就來看一下怎麼用postman優雅的解決這種問題

1、變量

  個人感覺postman的函數寫法是和js比較像的。

  首先調出postman的控制檯:
  postman控制檯
在這裏插入圖片描述
  然後 寫一個變量,並打印吧

//聲明參數  入參
data = "test"
console.log(data)

在這裏插入圖片描述
  調用這個方法的時候就會打印出來
在這裏插入圖片描述

2、系統變量

  postman中也可以設置環境變量的,設置了之後就可以在別的地方調用到,具體寫法如下:

pm.environment.set("param", data)

3、兩個簡單方法

  這裏模擬了兩個方法來演示我上面提到的問題。

  第一個方法,給入參拼接了一個後綴

@GetMapping("/first")
@ResponseBody
public ResponseEntity<String> firstFunction(@RequestParam String param){
    return res(param + "-init");
}

在這裏插入圖片描述
  第二個方法,給入參加了一個前綴

@GetMapping("/second")
@ResponseBody
public ResponseEntity<String> secondFunction(@RequestParam String param){
    return res("加工後的隨機數:" + param);
}

在這裏插入圖片描述

4、關聯兩個方法

  下面我要做的就是讓第一個方法的結果,作爲第二個方法的入參。一個postman請求完成。

  先看結果,前綴後綴都有的:
在這裏插入圖片描述
  下面簡單分析一下:
在這裏插入圖片描述
  相信你也注意到了圈紅的地方,這裏就是使用的上面提到的環境變量,第一個方法執行完之後,將結果保存在postman的環境變量中,然後第二個方法執行的時候從postman的環境變量中取出來就行了。
在這裏插入圖片描述
  上面這張圖是本章的重點了!

  第2行,聲明變量

  第6行則是拼出了第一個方法的請求格式

  第7行,拼接url時使用了上面聲明的變量(當然此處也可以不使用變量,直接寫死,但是有時候變量多,且使用的地方較多的時候,使用變量可以統一管理)

  第12行對一個方法發出請求,得到請求結果

  第17行,將請求結果轉成json對象

  第20行將第一個方法的請求結果寫入到環境變量

  然後我們再來看請求參數,就是上面方法寫入到環境變量的值:
在這裏插入圖片描述

5、總結

  很多時候我們只是用到一些工具極少的功能,但是不可否認的是,當我們學的越來越多的時候,開發真的變的越來越簡潔優雅。

  postman的技巧還有很多,慢慢學!

  下面貼一下代碼:

package com.java.example.demo.postman;

import com.alibaba.fastjson.JSONObject;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * postman中常量及函數的使用
 *
 * 場景:
 * secondFunction這個方法需要依賴 firstFunction方法 執行的結果
 * 使用一個postman請求解決
 */
@RestController
public class Constant {

    @GetMapping("/first")
    @ResponseBody
    public ResponseEntity<String> firstFunction(@RequestParam String param){
        return res(param + "-init");
    }

    @GetMapping("/second")
    @ResponseBody
    public ResponseEntity<String> secondFunction(@RequestParam String param){
        return res("加工後的隨機數:" + param);
    }

    private static ResponseEntity<String> res(Object object){
        Map<String,Object> map = new HashMap<>();
        map.put("res",object);
        return jsonResult(JSONObject.toJSONString(map));
    }

    public static ResponseEntity jsonResult(String result) {
        HttpHeaders resHeaders = new HttpHeaders();
        resHeaders.set("Content-Type", "application/json;charset=UTF-8");
        return new ResponseEntity(result, resHeaders, HttpStatus.OK);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章