aws apigateway 使用restapi集成http

news2024/11/16 17:29:37

参考资料

  • https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/services-apigateway-tutorial.html

restapi代理集成http

在 HTTP 代理集成中,apigateway会将客户端提交的方法请求传递至后端。传递的请求数据包括请求标头、查询字符串参数、URL 路径变量和payload

后端负责传入请求数据解析,确定要返回的响应。HTTP 代理集成使得客户端和后端可以直接交互,而不受 API Gateway 的任何干预。

因此,开发人员必须向客户端开发人员讲清楚资源和对应的操作

创建httpapi名称为ProxyResourceForPetStore

在这里插入图片描述

api的代理资源路径{pet+} 成为 endpoint url 下任何后端端点的占位符

官方为我们提供了一个测试的api

$ curl http://petstore-demo-endpoint.execute-api.com/petstore/pets
[
  {
    "id": 1,
    "type": "dog",
    "price": 249.99
  },
  {
    "id": 2,
    "type": "cat",
    "price": 124.99
  },
  {
    "id": 3,
    "type": "fish",
    "price": 0.99
  }
]

将endpoint url设置为http://petstore-demo-endpoint.execute-api.com/{proxy}

在这里插入图片描述

这之后的配置就和apigateway无关了,还需要满足以下要求

  • 确保后端能够访问
  • 客户端输入正确
  • 后端能够正确处理请求,apigateway不协调前后端的交互

我们在控制台测试已经能够请求到数据了

在这里插入图片描述

在终端测试也是一样的,注意要开启method的iam认证

$ awscurl --service execute-api   --region cn-north-1  https://74jp7wfz0k.execute-api.cn-north-1.amazonaws.com.cn/test/petstore/pets
[
  {
    "id": 1,
    "type": "dog",
    "price": 249.99
  },
  {
    "id": 2,
    "type": "cat",
    "price": 124.99
  },
  {
    "id": 3,
    "type": "fish",
    "price": 0.99
}

再试试其他的公开api,例如https://tenapi.cn/v2/{proxy}

$ curl https://tenapi.cn/v2/yiyan -X POST -d 'format=json'
{
    "code": 200,
    "msg": "success",
    "data": {
        "id": "1318780019000",
        "hitokoto": "败者死于绝望,胜者死于渴望。",
        "cat": "a",
        "catname": "Anime - 动画",
        "author": "哀川润",
        "source": "戏言系列",
        "date": "1318780019"
    }
}

然后我们就有了一个产生一句话的api

$ awscurl --service execute-api  --region cn-north-1  https://74jp7wfz0k.execute-api.cn-north-1.amazonaws.com.cn/test/yiyan
没错,不管是谁都是如此。
$ awscurl --service execute-api  --region cn-north-1  https://74jp7wfz0k.execute-api.cn-north-1.amazonaws.com.cn/test/yiyan
我每次读完一本书的时候,也会有种从梦中醒来一般的哀伤感觉呢。
$ awscurl --service execute-api  --region cn-north-1  https://74jp7wfz0k.execute-api.cn-north-1.amazonaws.com.cn/test/yiyan
想打的话就握紧你的拳头,不想打的话就别挡路啊,别用这种半吊子的态度来践踏别人的决心啊!

这意味着我们只要有一台web服务器,就能够集成apigateway并获取其更多功能

restapi非代理集成http

再来看看非代理集成http

创建api的步骤一致,创建资源时取消勾选代理资源,启用CORS

在这里插入图片描述

创建方法,非代理集成下我们可选择集成项目也变多了,但是需要指定请求方法

  • 这里创建get方法,url为http://petstore-demo-endpoint.execute-api.com/petstore/pets

  • http method的方法,是集成请求的方法谓词,可以和请求方法不一致,取决于请求目的

    For the integration request’s HTTP method, you must choose one supported by the backend. For HTTP or Mock integration, it makes sense that the method request and the integration request use the same HTTP verb. For other integration types the method request will likely use an HTTP verb different from the integration request. For example, to call a Lambda function, the integration request must use POST to invoke the function, whereas the method request may use any HTTP verb depending on the logic of the Lambda function.

在这里插入图片描述

  • 开启iam校验

控制台测试请求成功,并部署

在这里插入图片描述

终端测试访问,结果一致

$ awscurl --service execute-api   --region cn-north-1  "https://74jp7wfz0k.execute-api.cn-north-1.amazonaws.com.cn/test/pet?type=dog&page=2"
[
  {
    "id": 4,
    "type": "dog",
    "price": 999.99
  },
  {
    "id": 5,
    "type": "dog",
    "price": 249.99
  },
  {
    "id": 6,
    "type": "dog",
    "price": 49.97
  }
]

关于请求参数映射的内容,可以继续看看

https://docs.amazonaws.cn/en_us/apigateway/latest/developerguide/api-gateway-create-api-step-by-step.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/390852.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SVN项目迁移到Git方法

本文记录如何将SVN项目迁移到Git,并保留提交日志信息。 目录Git和SVN差异环境准备Git安装、配置项目迁移1. 将源SVN库转换到Git本地仓库2. 添加Git远程库地址3. 推送代码到Git常见错误参考文档Git和SVN差异 Git是一个开源的分布式版本控制系统,由Linux之…

一、策略模式的使用

1、策略模式定义: 策略模式(Strategy Pattern)定义了一组策略,分别在不同类中封装起来,每种策略都可以根据当前场景相互替换,从而使策略的变化可以独立于操作者。比如我们要去某个地方,会根据距…

云原生应用配置管理的5个最佳实践

引言 在复杂的云原生应用程序中管理配置信息是非常困难的,似乎到处都有配置。在使用基于微服务架构的云原生应用程序中,配置问题成倍增加。 配置无处不在。有针对网络的配置,比如路由规则、端口控制、负载均衡,有针对数据库的配置…

JavaScript Boolean 布尔对象

文章目录JavaScript Boolean 布尔对象Boolean 对象Boolean 对象属性Boolean 对象方法检查布尔对象是 true 还是 false创建 Boolean 对象JavaScript Boolean 布尔对象 Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false&#xff0…

CSS常用选择器

目录 1.CSS是什么 2.CSS的三种写法 2.1内部样式 2.2内联样式 2.3外部样式 3.CSS选择器 3.1标签选择器 3.2类选择器(更好的选择) 3.3ID选择器 3.4后代选择器 3.5子选择器 3.6并集选择器 3.7伪类选择器(复合选择器的特殊用法) 1.CSS是什么 CSS全称Cascding Style Sh…

「兔了个兔」CSS如此之美,看我如何实现可爱兔兔LOADING页面(万字详解附源码)

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

汽车诊断UDS通信协议总结

UDS通信过程 UDS(Unified Diagnostic Services)是一种用于汽车诊断的通信协议,它是基于CAN(Controller Area Network)总线的一种高层协议。 下面是UDS通信的基本流程: 建立诊断会话:通过CAN总…

【VC 7/8】vCenter Server 基于文件的备份和还原Ⅲ—— 使用 SMB 协议备份 VC(VAMI 中文)

目录2.2 使用 SMB 协议备份 VC(VAMI 中文)(1)登录 vCenter Server 管理界面(2)进入备份页面(3)配置 Backup Schedule(4)开始备份(5)备…

ios 通过搜索设备MAC地址绑定

最近做了一个物联网项目,涉及到了设备绑定配网这块,需要了解一下iOS BLE与设备绑定的相关知识点,第一次接触蓝牙相关的项目,所以开始熟悉蓝牙的相关信息。没有去深入研究BabyTooth库,只是感觉CoreBluetooth已经让我更好的理解整个流程这个物联网项目的设备绑定流程是…

sheng的学习笔记-Actuator健康监控

前言在微服务系统里,对微服务程序的运行状况的跟踪和监控是必不可少的;例如GPE,TelegrafinfluxDB都提供了微服务体系监控的方案, ZIPKIN, Skywalking都提供了微服务云体系的APM的方案; 这些解决方案功能全面…

Thumbnailator快速入门

简介 Thumbnailator 是一个开源的 Java 项目,它提供了非常简单的 API 来对图片进行缩放、旋转以及加水印的处理。 有多简单呢?简单到一行代码就可以完成图片处理。形式如下: Thumbnails.of(new File("path/to/directory").listF…

IDEA搭建vue-cli | vue-router | 排错思路、Webpack、Axios、周期、路由、异步、重定向

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Vue.js概述 Vue 是一套用于构建用户界面的渐进式JavaScript框架。 与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层…

IDEA集成Git就是这么简单

IDEA集成Git 文章目录IDEA集成Git配置Git环境配置Git的忽略文件①为什么需要配置忽略文件?②配置忽略文件③引用配置文件配置IDEA初始化项目添加到暂存区方式一:方式二:移除暂存区提交到本地库分支创建分支切换分支版本穿梭配置Git环境 配置…

应届大学生学什么技术好?哪些技术适合年轻人?

到了毕业季,应届大学生面临的就是就业问题,很多专业的大学生难以找到对口的工作,或是不得已随便就业,或者是学个技术高薪就业,那么,问题来了,应届大学生学什么技术好?哪些技术适合年…

XC7K160T-1FBG484I、XC7A100T-2CSG324I FPGA可编程门阵列 PDF规格书

1、XC7K160T-1FBG484I说明:Kintex-7 FPGA有-3、-2、-1、-1L和-2L速度等级,其中-3具有最高的性能。-2L器件被筛选为较低的最大静态功率,并且可以在较低的核心电压下运行,以获得比-2器件更低的动态功率。-2L工业(I)温度器件仅在VCCI…

C#教程03-- 数据类型

文章目录 C#数据类型值类型(Value types)引用类型对象(Object)类型动态(Dynamic)类型字符串(String)类型C#数据类型 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型(Value types) 值类型…

Bean的装配方式(xml和注解)

方式一:基于xml 掌握Bean基于XML的装配,能够使用XML装配方式对Bean进行装配 在基于XML的装配就是读取XML配置文件中的信息完成依赖注入,Spring容器提供了两种基于XML的装配方式,属性setter方法注入和构造方法注入。下面分另对这…

RocketMQ-02

1. 案例介绍 1.1 业务分析 模拟电商网站购物场景中的【下单】和【支付】业务 ###1)下单 用户请求订单系统下单订单系统通过RPC调用订单服务下单订单服务调用优惠券服务,扣减优惠券订单服务调用调用库存服务,校验并扣减库存订单服务调用用户…

Vue2.0开发之——购物车案例-Footer组件封装(50)

一 概述 导入Footer子组件定义fullState计算属性把全选状态传递给Footer子组件实现全选功能 二 导入Footer子组件 2.1 App.vue中导入Footer组件 import Footer from "/components/Footer/Footer.vue";2.2 App.vue中注册Footer子组件 components: {Header,Goods,F…

云原生之使用Docker部署Gitblit服务器

云原生之使用Docker部署Gitblit服务器一、Gitblit介绍二、检查本地docker环境1.检查docker版本2.检查docker状态三、下载Gitblit镜像四、部署Gitblit应用1.创建部署目录2.创建Gitblit容器3.检查Gitblit容器状态4.检查Gitblit容器运行日志五、访问Gitblit首页1.访问Gitblit首页2…