AWS API 网关 - 使用 C# SDK 调用 GET 方法
AWS API Gateway - Call GET Method with C# SDK
我有一个使用 IAM 授权的 API 网关。我有一个 C# 应用程序,我希望用它来调用 API。我从 GetMethodRequest
开始,但无论如何我都看不到设置 PathPart 参数。
var userId = _remoteCredentials.UserId;
var key = _remoteCredentials.Key;
var client = new AmazonAPIGatewayClient(userId, key, Amazon.RegionEndpoint.USEast2);
GetMethodRequest getMethodRequest = new GetMethodRequest();
getMethodRequest.HttpMethod = HttpMethod.Get.ToString();
getMethodRequest.ResourceId = "4abcde";
getMethodRequest.RestApiId = "aasfasdfs";
var task = Task.Run(async () => await client.GetMethodAsync(getMethodRequest).ConfigureAwait(false));
我期待像 Powershell SDK 中的 Test-AGInvokeMethod
这样的东西,它允许我设置查询字符串和路径。
$response = Test-AGInvokeMethod
-RestApiId aasfasdfs
-ResourceId 4abcde
-HttpMethod GET
-PathWithQueryString '/etl/upload_url'
非常感谢任何帮助。
EDIT 下面是我最终使用的解决方案 AWS4RequestSigner
是我在 Github
上找到的一个库
var signer = new AWS4RequestSigner(userId, key);
var destinationUrl = string.Format("https://ad9vxabc123.execute-api.us-east-2.amazonaws.com/dev/etl/summary/latest?tms_id={0}&model_id={1}", _tmsId, _modelId);
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri(destinationUrl),
};
var signed = Task.Run(async () => await signer.Sign(request, "execute-api", "us-east-2").ConfigureAwait(false));
var signedResult = signed.Result;
AmazonAPIGatewayClient
用于管理 您的 API 网关,例如添加新阶段或删除 API 个键。
您希望在 API 网关上 调用 一种方法,就像 Test-AGInvokeMethod
那样。
要调用您的 API 网关,您需要使用 HTTP 客户端调用 deployed API endpoint。
.NET 的 in-built HttpClient
是一个好的开始。
我有一个使用 IAM 授权的 API 网关。我有一个 C# 应用程序,我希望用它来调用 API。我从 GetMethodRequest
开始,但无论如何我都看不到设置 PathPart 参数。
var userId = _remoteCredentials.UserId;
var key = _remoteCredentials.Key;
var client = new AmazonAPIGatewayClient(userId, key, Amazon.RegionEndpoint.USEast2);
GetMethodRequest getMethodRequest = new GetMethodRequest();
getMethodRequest.HttpMethod = HttpMethod.Get.ToString();
getMethodRequest.ResourceId = "4abcde";
getMethodRequest.RestApiId = "aasfasdfs";
var task = Task.Run(async () => await client.GetMethodAsync(getMethodRequest).ConfigureAwait(false));
我期待像 Powershell SDK 中的 Test-AGInvokeMethod
这样的东西,它允许我设置查询字符串和路径。
$response = Test-AGInvokeMethod
-RestApiId aasfasdfs
-ResourceId 4abcde
-HttpMethod GET
-PathWithQueryString '/etl/upload_url'
非常感谢任何帮助。
EDIT 下面是我最终使用的解决方案 AWS4RequestSigner
是我在 Github
var signer = new AWS4RequestSigner(userId, key);
var destinationUrl = string.Format("https://ad9vxabc123.execute-api.us-east-2.amazonaws.com/dev/etl/summary/latest?tms_id={0}&model_id={1}", _tmsId, _modelId);
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri(destinationUrl),
};
var signed = Task.Run(async () => await signer.Sign(request, "execute-api", "us-east-2").ConfigureAwait(false));
var signedResult = signed.Result;
AmazonAPIGatewayClient
用于管理 您的 API 网关,例如添加新阶段或删除 API 个键。
您希望在 API 网关上 调用 一种方法,就像 Test-AGInvokeMethod
那样。
要调用您的 API 网关,您需要使用 HTTP 客户端调用 deployed API endpoint。
.NET 的 in-built HttpClient
是一个好的开始。