API POST接口返回发送的JSON【Apifox】

2,738 阅读1分钟

Apifox = Postman + Swagger + Mock + JMeter

1. 修改文档

1.1 设置POST

1.2 设置API /ebill/ebillbiz/rest/upload/up

1.3 设置请求 Body

1.4 设置响应

可以快捷填写参数

{
    "upparameter": {
        "UserId": "94",
        "Id": "54",
        "serialNumber": "89",
        "FileId": "100",
        "Thumbnail": "test",
        "base64": "test"
    }
}

image.png

2. 测试接口

2.1 直接点快捷请求

2.2 复制URL到浏览器

image.png

3. 运行

image.png

C语言版本

CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
   curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
   curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:4523/m1/2064114-0-default/ebill/ebillbiz/rest/upload/up");
   curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
   curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
   struct curl_slist *headers = NULL;
   headers = curl_slist_append(headers, "User-Agent: Apifox/1.0.0 (https://www.apifox.cn)");
   headers = curl_slist_append(headers, "Content-Type: application/json");
   headers = curl_slist_append(headers, "Accept: */*");
   headers = curl_slist_append(headers, "Host: 127.0.0.1:4523");
   headers = curl_slist_append(headers, "Connection: keep-alive");
   curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
   const char *data = "{\n    \"upparameter\": {\n        \"UserId\": \"94\",\n        \"Id\": \"54\",\n        \"serialNumber\": \"89\",\n        \"FileId\": \"100\",\n        \"Thumbnail\": \"test\",\n        \"base64\": \"test\"\n    }\n}";
   curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
   res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);

Go语言版本

package main

import (
   "fmt"
   "strings"
   "net/http"
   "io/ioutil"
)

func main() {

   url := "http://127.0.0.1:4523/m1/2064114-0-default/ebill/ebillbiz/rest/upload/up"
   method := "POST"

   payload := strings.NewReader(`{
    "upparameter": {
        "UserId": "94",
        "Id": "54",
        "serialNumber": "89",
        "FileId": "100",
        "Thumbnail": "test",
        "base64": "test"
    }
}`)

   client := &http.Client {
   }
   req, err := http.NewRequest(method, url, payload)

   if err != nil {
      fmt.Println(err)
      return
   }
   req.Header.Add("User-Agent", "Apifox/1.0.0 (https://www.apifox.cn)")
   req.Header.Add("Content-Type", "application/json")
   req.Header.Add("Accept", "*/*")
   req.Header.Add("Host", "127.0.0.1:4523")
   req.Header.Add("Connection", "keep-alive")

   res, err := client.Do(req)
   if err != nil {
      fmt.Println(err)
      return
   }
   defer res.Body.Close()

   body, err := ioutil.ReadAll(res.Body)
   if err != nil {
      fmt.Println(err)
      return
   }
   fmt.Println(string(body))
}

4. 高级mock

4.1 自定义脚本

// 获取智能 Mock 功能自动 Mock 出来的数据
var responseJson = fox.mockResponse.json();

// 修改 responseJson 里的分页数据
// 将 page 设置为请求参数的 page
responseJson.upparameter = fox.mockRequest.getParam('upparameter');

// 将修改后的 json 写入 fox.mockResponse
fox.mockResponse.setBody(responseJson);

image.png

5. 测试效果

当发送

{
    "upparameter": {
        "UserId": "94",
        "Id": "54",
        "serialNumber": "89",
        "FileId": "100",
        "Thumbnail": "test",
        "base64": "test"
    }
}

时,就可以收到同样的

{
    "upparameter": {
        "UserId": "94",
        "Id": "54",
        "serialNumber": "89",
        "FileId": "100",
        "Thumbnail": "test",
        "base64": "test"
    }
}