小编Hex*_*xie的帖子

API网关 - 发布multipart\form-data

似乎我的问题可能与类似.

我的API网关中有一个API,我正在通过POST的multipart/form-data文件的端点进行HTTP代理.

如果我直接调用http端点(而不是通过API网关) - 使用邮递员,它按预期工作,但是,使用API​​网关端点(通过邮递员)失败.

我已经比较了两个似乎相同的请求(通过fiddler和CloudWatch日志):

请求直接API调用(工作):

POST https://domainname/api/v1/documents HTTP/1.1
Host: api.service
Connection: keep-alive
Content-Length: 202
Authorization: AuthToken
Postman-Token: a75869d6-1d64-6b9f-513d-a80ac192c8e1
Cache-Control: no-cache
Origin: chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
docMetaInfo: some extra data needed
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryB85rsPlMffA2fziS
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8

------WebKitFormBoundaryB85rsPlMffA2fziS
Content-Disposition: form-data; name=""; filename="Test.txt"
Content-Type: text/plain

This is a test Text File
------WebKitFormBoundaryB85rsPlMffA2fziS--
Run Code Online (Sandbox Code Playgroud)

来自API网关的请求(不工作):

POST https://GATEWAY_domainname/api/v1/documents HTTP/1.1
Host: api-Gateway.service
Connection: keep-alive
Content-Length: 202
Authorization: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda aws-api-gateway

25
推荐指数
4
解决办法
2万
查看次数

Swagger UI - 有效响应中的"TypeError:无法获取"

我刚刚从Git repo(3.0.19)中删除了最新的Swagger:https://github.com/swagger-api/swagger-ui.git并更新了我的API以使用新版本.

跑来git describe --tags确认,我的版本目前是:v3.0.19-6-gaab1403

我遇到的问题是这里描述的问题,我的响应是403(我可以在浏览器的检查器中看到这个),虽然我有错误403的响应,但我仍然收到TypeError: Failed to fetch消息.

在此输入图像描述

在此输入图像描述

这是我对403响应的定义的片段:

                    "403": {
                    "description": "Forbidden",
                    "headers": {
                        "Access-Control-Allow-Origin": {
                            "type": "string"
                        }
                    }
                },
Run Code Online (Sandbox Code Playgroud)

我也注意到它在这里报道,但我知道这不是一个CORS问题,因为我测试了端点并且OPTIONS返回正确,如果使用有效信息调用端点也是如此(我强制使用403).

有人能指出我正确的方向吗?

更新:我已经测试了401响应,响应相同.

在此输入图像描述

并且400正在按预期工作:

在此输入图像描述

swagger swagger-ui swagger-2.0

14
推荐指数
6
解决办法
3万
查看次数

每个阶段更改我的 AWS API Gateway 自定义授权者

我目前有一个 API 通过我们的 API 网关,该网关附加了多个自定义授权者 -LiveAuthorizerTestAuthorizer.

我想根据正在访问的阶段更改我的自定义授权者,就像阶段变量一样。如果我们处于阶段测试,请使用TestAuthorizer,如果处于现场使用LiveAuthorizer

从我的研究和本页来看,这似乎不可能,有什么想法吗?

PS - 我知道这可以在执行身份验证的 Lambda 函数内处理,我只是好奇是否有另一种方法(类似于阶段变量)。

amazon-web-services custom-authentication aws-lambda aws-api-gateway

7
推荐指数
1
解决办法
3835
查看次数

自定义生成的模型名称-Swagger UI

我正在尝试调整自动生成的Swagger定义中使用的模型的“ displayName”。

这只会影响Swagger名称,这意味着代码中的名称空间将保持不变,而从Swagger UI查看模型时,您会看到一个自定义名称。

当前,从代码返回的模型名称是一个命名空间,如下所示:b.c.d.e.f,我想在代码中添加一个属性,并“屏蔽” Swagger文档的名称,以便在生成文档/ Swagger定义时它将显示为CustomSwaggerName

我有一些API(C#)使用的工具包括Swashbuckle(preferred)和SwaggerGen,但是现在,如果可能的话,我想使它在其中任何一种下工作。

我尝试使用看起来正确的属性:

[ResponseType(typeof(Company)),DisplayName("NewCompany")]
[SwaggerResponse(200,"NewCompany",typeof(object))]
Run Code Online (Sandbox Code Playgroud)

没有运气。我还浏览了SwashBuckle git存储库,希望找到一些东西。

图像应有助于进一步解释我正在尝试实现的目标。 在此处输入图片说明

我知道这似乎是一个奇怪的用例,但这是针对为我们的AWS API Gateway自动化编写的工具,该工具将使用Swagger定义进行一些比较。

c# swagger swagger-ui swashbuckle swagger-codegen

7
推荐指数
2
解决办法
3623
查看次数

Swagger UI-隐藏定义URL路径

使用Swagger - UI3XX

我只想知道这是否可能,如果可以,如何:

当前,我们需要显示hide的定义URL路径Swagger - UI

在此处输入图片说明

我知道无法删除此URL,我也不想这样做,我只想对查看此页面的客户端隐藏/屏蔽文本框。

这里查看新的Swagger文档,您可以添加一些很棒的技巧和其他功能-与查询有关的任何内容我都看不到。

我很确定,我可以查询HTML,找到有问题的元素的ID,然后在index.html中手动更改它的显示,我更喜欢使用内置方法,如果有的话在进入之前那可能的解决方案。

即像这样的事情是可行的,并且可以工作:

<style> .download-url-input { display: none !important; } </style> 
Run Code Online (Sandbox Code Playgroud)

这有可能吗?

swagger-ui

7
推荐指数
1
解决办法
6076
查看次数

如何&lt;链接&gt;到同一页面

我正在转换一些现有代码以使用 React Router。

当前使用的代码<a href="#" ...>,我正在更改为<Link to=??>.

我的问题是:我应该使用什么"to"参数?如果我使用to="#",应用程序将路由到“/”,这不是我想要的。

如果我使用当前的路线名称,它会起作用,但是整个想法 href="#"是代码不必知道它是如何访问的。

我正在使用带有 history=browserHistory 的 React Router 2。

react-router

6
推荐指数
1
解决办法
1万
查看次数

API网关将大文件GET / PUT放入S3

遵循此AWS文档,我能够在API网关上创建一个新的终结点,该终结点能够处理S3存储库中的文件。我遇到的问题是文件大小(AWS的有效负载限制为10MB)。

我想知道,如果不使用lambda解决方法(此链接将对此有所帮助),是否有可能上传和获取大于10MB的文件(如果需要,甚至可以二进制),因为这是使用S3服务作为代理。 -还是这个限制?

我尝试了PUTting和GETting大于10MB的文件,每个响应都是典型的"message": "Timeout waiting for endpoint response"

看起来这Lambda是唯一的方法,只是想知道是否有人使用S3作为代理来解决此问题。

谢谢

amazon-s3 amazon-web-services aws-lambda aws-api-gateway

6
推荐指数
1
解决办法
5536
查看次数

将多个监听器绑定到同一个端口

我正在使用UdpClient类,.net 3.5 我需要将多个应用程序绑定到同一个端口。

因此,如果UDP服务器广播任何请求 - 在端口上侦听的所有应用程序都可以接收消息,但问题是,当我尝试将应用程序绑定到同一端口时,只有一个应用程序收到消息,而另一个应用程序没有。

下面是这两个应用程序的一些示例代码:

    UdpClient udpClient = new UdpClient();
    Thread thread;
    IPEndPoint endPoint = new IPEndPoint(IPAddress.Loopback, 11000);
    public Form1()
    {
        //CheckForIllegalCrossThreadCalls = false;

        InitializeComponent();
        udpClient.ExclusiveAddressUse = false;
        udpClient.Client.SetSocketOption(
        SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
        udpClient.Client.Bind(endPoint);
    }

    private void MainForm_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Escape)
        {
            thread.Abort();
            udpClient.Close();
            Close();
        }
    }

    private void ReceiveMessage()
    {
        //while (true)
        //{
        // IPEndPoint remoteIPEndPoint = new IPEndPoint(IPAddress.Any, 11000);
        //  byte[] content = udpClient.Receive(ref endPoint);
        udpClient.BeginReceive(new AsyncCallback(Read_Callback), …
Run Code Online (Sandbox Code Playgroud)

c# udpclient

5
推荐指数
1
解决办法
8337
查看次数

AWS API Gateway - 找不到资源时出现错误 403

似乎HTTP响应被403接受为对 API 网关设置上不存在的资源或端点进行的任何调用的规范和正确处理(这篇文章)。

示例:对我的网关上不存在的端点的调用将是:

  • 获取——https://{{MyGatewayDomain}}/api/v1/blah

这将返回一个403 forbidden. 这可能相当令人困惑和误导。

我想知道是否有人设法配置他们的 API 网关,以便对不存在的端点/资源的任何调用都会返回我认为是 404 的正确响应?

提前致谢。

编辑

根据bejos-aws的建议,我可以覆盖默认行为,403 Missing Authentication Token但是,这不会解决我的问题,因为所有有效403错误都会返回404不正确的响应。

另外,我的问题是关于403 forbiddenAWS 列表中的默认响应中不存在的a Gateway Response(即使存在,也无济于事)。

看来这是不可能的?

swagger-ui aws-api-gateway

5
推荐指数
1
解决办法
4727
查看次数

Elasticsearch批量JSON数据

这个问题来自这个SO线程

似乎我有一个相似但不相同的查询,因此最好像@Val建议的那样让其他人从中受益。

因此,类似于上述内容,我需要在索引中插入大量数据(我的初始测试大约是10000个文档,但这只是针对POC,还有更多)。我想插入的数据在.json文档中,看起来像这样(片段):

[ { "fileName": "filename", "data":"massive string text data here" }, 
  { "fileName": "filename2", "data":"massive string text data here" } ]
Run Code Online (Sandbox Code Playgroud)

我个人承认,我是ElasticSearch的新手,但是,从阅读文档开始,我的假设是我可以获取.json文件并根据其中的数据创建索引。从那以后,我了解到json中的每个项目似乎都需要有一个“标头”,例如:

{"index":{}}
{ "fileName": "filename", "data":"massive string text data here" }
Run Code Online (Sandbox Code Playgroud)

意思是,这不是实际的json格式(如此),而是操纵的字符串。

我想知道是否有一种方法可以直接获取importjson数据(采用json格式),而不必先手动操作文本(因为我的测试数据有10000个条目,我敢肯定,你会明白为什么我d不想手动执行此操作)。

有什么建议或建议的自动化工具来帮助您吗?

PS-我正在使用Windows Installer和Postman进行通话。

json elasticsearch

5
推荐指数
1
解决办法
758
查看次数

AWS Lambda C# - 访问自定义上下文

我有一个用.NET Core(C#)编写的简单Lambda函数,它使用该APIGatewayProxyRequest对象遍历所有请求属性.

如果我测试这个lambda函数(来自AWS Lambda),并传递一个包含基本信息的示例事件配置:

在此输入图像描述

我可以这样得到这样的信息:

public string FunctionHandler(APIGatewayProxyRequest request, ILambdaContext context)
        logger.Logger.Log($"Body: {request.Body}  \n");
        logger.Logger.Log($"Path: {request.Path}  \n");
        logger.Logger.Log($"Resource: {request.Resource}  \n");
Run Code Online (Sandbox Code Playgroud)

我怎么能从相同的数据访问自定义上下文或授权者值:

在此输入图像描述

我试过了:

logger.Logger.Log($"RequestContext Authorizor: {request.RequestContext.Authorizer}  \n");
Run Code Online (Sandbox Code Playgroud)

包括它的不同特性(StringKey,PrincipleId等等)

从Node.js看来,这可以通过使用这个简单地实现:

event.requestContext.authorizer.customKey
Run Code Online (Sandbox Code Playgroud)

C#中没有这样的东西?

c# amazon-web-services aws-lambda aws-api-gateway

4
推荐指数
1
解决办法
2457
查看次数

来自"设置"的MessageBox文本

我想WinForm从"设置"中设置控件的文本.

如果我想在将来改变程序语言,这很容易;

只需要修改适当的设置.

其中一个messageBoxes文本有一个换行符(\n).
当我从"设置"中插入文本时,\n将显示为文本的一部分,并且没有换行符.

MessageBox.Show(P_Settings.NotificationMessageBoxes.Default.ProcessFinishedNotification, 
P_Settings.NotificationMessageBoxes.Default.ProcessFinishedNotificationTitle, 
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# settings winforms

3
推荐指数
1
解决办法
139
查看次数

仅显示日期MVC

我有这个 model

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Text;
namespace PrototypeHelp.Models
{

    public class DocumentModel
    {   
        public int documentID { get; set; }
        public String Title { get; set; }
        public DateTime DateCreated { get; set; }
        public String Description { get; set; }
        public int authorID { get; set; }
        public String AuthorName { get; set; }
        public int categoryID { get; set; }
        public String Category { get; set; }
        public int topicID …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

1
推荐指数
1
解决办法
8759
查看次数