我们有一个应用程序充当API网关,可以进行调用并将其路由到其他API,然后中继响应。
在我们的设置中,我们确保进行API调用的开发人员不要通过上传大量文件或发送过多的JSON有效负载来尝试淹没我们。现在,我们正在尝试弄清楚,如果它们进行的API调用返回的数据过多,我们如何确保不将其作为洪水泛滥。
是否有一种方法可以设置IIS或ASP.Net应用程序,以与拒绝特定大小的API请求相同的方式拒绝特定大小的API响应?
只需添加一个明确的示例:
如果开发者发出API请求以获取所有客户,则API网关会将请求传递给我们的内部客户API。如果客户API响应为600MB,则我们希望在API网关处阻止该响应,然后将响应发送给开发人员,要求他们更改其请求以减少结果集。
答案 0 :(得分:0)
响应没有限制大小。我们可以通过在响应标头中添加更多参数Content-Length来限制响应大小。
要设置请求限制,您可以在web.config文件中设置
<system.web>
<httpRuntime maxRequestLength="2147483647" />
或
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
</system.webServer>
或
您还可以在web.config中设置以下代码:
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
maxJsonLength配置JSON字符串的最大长度。
有关更多详细信息,请参阅: jsonSerialization Element (ASP.NET Settings Schema)
关于, 贾帕(Jalpa)