首页 > 解决方案 > 如何使用 Plumber 发送没有正文的 API 响应?

问题描述

是否可以使用 Plumber 发送没有正文的 API 响应?这是我尝试过的:

#* @param msg The message to echo back.
#* @get /echo
function(msg="", res){
  res$body<-NULL
}

#* @param msg The message to echo back.
#* @get /echo
function(msg="", res){
 
}

但是在 Postman 的这两种情况下,我最终{}都会得到漂亮或原始的视图。在我看来,它就像是空的身体,但我又该如何摆脱{}呢?

更新 我能够用python实现这个结果:

import flask
app = flask.Flask(__name__)
app.config["DEBUG"] = True
@app.route('/', methods=['GET'])
def home():
    return "", 200

app.run()

现在,我怎样才能对管道工做同样的事情?

另一个更新

我快到了:

#* @serializer contentType list(type="application/json")
#* @param msg The message to echo back.
#* @get /echo
function(msg="", res){
  
}

不返回任何身体,成功!但我也想返回状态码 = 202(已接受)。所以我尝试了:

#* @serializer contentType list(type="application/json")
#* @param msg The message to echo back.
#* @get /echo
function(msg="", res){
  res$status <- 202
}

这几乎可以工作,但在正文中返回了一些符号:?</p>

现在我也需要摆脱它并保持状态码 202

标签: pythonrapiplumber

解决方案


默认情况下plumber尝试发送有效的 JSON 响应。如果这不是您想要的,请将序列化更改为类似文本的内容并返回一个空字符串

#* @param msg The message to echo back.
#* @get /echo
#* @serializer text
function(msg="", res){
  res$body <- ""
}

推荐阅读