rest - 更改 Genexus 过程 Rest 中的 HTTP 状态代码

标签 rest http-status-codes genexus

有人知道如何在 Genexus 中的过程类型 REST 中更改响应 HTTP 状态代码吗?

我生成了一个api Rest,它总是响应Http代码200,当出现错误时我需要将响应更改为400。

最佳答案

API 对象在适用于 Net 和 Net Core 生成器的 Genexus 17 以及适用于 Java 生成器的 GeneXus 17 Upgrade 2 中可用。 API 对象允许您通过名为 &RestCode 的预定义变量自定义 HTTP 状态代码。 Here API 对象的 wiki。 如果您使用的是旧版本,有一种方法可以解决直接在 PRC 中编写外部代码的问题,如 here 所述。 .

根据您使用的外部代码,生成器是这样的:

.Net 生成器:

CSHARP [!&httresponse!].Response.StatusCode = 406;

Java 生成器:

&statusCode = 200
java context.getHttpContext().getResponse().setStatus([!&statusCode!]);

好吧,当 PRC 作为 REST 公开时,该代码似乎无法在 GeneXus Evolution 3 中工作。在 Java Generator 中进行一些研究,您可以这样修改 StatusCode:

enter image description here

规则是:

enter image description here

这是一个以 REST 形式公开的非常简单的 PRC,它接受一个数字作为输入并使用该数字生成一个字符串。 不知道如何在网络生成器中执行此操作。

关于rest - 更改 Genexus 过程 Rest 中的 HTTP 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69199232/

相关文章:

http - 如何测试 HTTP 301 重定向?

javascript - 如何使用 Genexus 将 javascript 代码与 Web 应用程序集成

android - Genexus X Evolution 3 - 通知的设备注册不起作用

rest - 何时使用 HTTP 状态码 425 "Too Early"

tomcat - 使用 ExceptionMapper 的自定义 HTTP 原因短语

java - REST API 后端出现错误 : "INFO: The connection was broken. It was probably closed by the client. Reason: Closed"

java - 如何使用 Spring REST 和复杂的查询参数?

asp.net-mvc - 使用 application_error() 事件处理 Web api 中的 HTTP "405"错误

c# - Web API 中线程的最佳实践