You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swagger UI中让API返回含随机数的JSON?

解决API返回随机图片链接的问题

报错原因

你写的内容里混了JavaScript代码(+、Math.floor这些),但JSON是纯静态的数据格式,不支持执行任何代码逻辑。Swagger会把你输入的内容当作标准JSON解析,遇到JS语法自然就触发格式错误了。

正确实现方式

1. 后端代码生成随机链接

随机数逻辑必须写在API的后端代码里,由服务器运行生成链接后,再包装成JSON返回。下面是几种常见后端语言的实现示例:

Node.js(Express框架)

app.get('/random-image', (req, res) => {
  // 生成1到3的随机整数
  const randomNum = Math.floor(Math.random() * 3) + 1;
  const link = `https://example.com/images/image${randomNum}.png`;
  // 返回JSON格式响应
  res.json({ link });
});

Python(Flask框架)

from flask import jsonify
import random

@app.route('/random-image')
def get_random_image():
    random_num = random.randint(1, 3)
    link = f"https://example.com/images/image{random_num}.png"
    return jsonify({"link": link})

Java(Spring Boot)

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Random;

@RestController
public class ImageController {
    @GetMapping("/random-image")
    public ImageResponse randomImage() {
        Random random = new Random();
        int randomNum = random.nextInt(3) + 1; // 生成1-3的随机数
        String link = "https://example.com/images/image" + randomNum + ".png";
        return new ImageResponse(link);
    }

    // 定义响应实体类
    static class ImageResponse {
        private String link;
        public ImageResponse(String link) { this.link = link; }
        public String getLink() { return link; }
        public void setLink(String link) { this.link = link; }
    }
}

2. Swagger UI里的响应配置

Swagger只负责展示API的格式和示例,不能用来写执行逻辑。你可以用静态示例或占位符来表示动态部分:

{
  "link": "https://example.com/images/image[1-3].png"
}

或者直接放一个具体的示例值:

{
  "link": "https://example.com/images/image2.png"
}

内容的提问来源于stack exchange,提问作者someoneonearthmadeofatoms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:09:25