有人知道如何在 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:
规则是:
这是一个以 REST 形式公开的非常简单的 PRC,它接受一个数字作为输入并使用该数字生成一个字符串。 不知道如何在网络生成器中执行此操作。
关于rest - 更改 Genexus 过程 Rest 中的 HTTP 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69199232/