当前位置: 首页 > news >正文

网站开发参考书营业推广方案

网站开发参考书,营业推广方案,做图表的网站知乎,哈尔滨高端品牌网站建设以下内容来自 尚硅谷#xff0c;写这一系列的文章#xff0c;主要是为了方便后续自己的查看#xff0c;不用带着个PDF找来找去的#xff0c;太麻烦#xff01; 第 8 章 前言#xff1a;如何与InfluxDB交互 1、InfluxDB启动后#xff0c;会向外提供一套HTTP API。外部程… 以下内容来自 尚硅谷写这一系列的文章主要是为了方便后续自己的查看不用带着个PDF找来找去的太麻烦 第 8 章 前言如何与InfluxDB交互 1、InfluxDB启动后会向外提供一套HTTP API。外部程序可以也仅能通过HTTP API与InfluxDB进行通信。我们后面要讲到的influx命令行、Web UI 和各编程语言的客户端库其内部都是封装的对HTTP API的调用。 2、所以各种客户端同InfluxDB交互时都离不开API TOKEN。因为HTTP是一种支持官方且简单的协议这也方便了用户进行二次开发。 第 9 章 InfluxDB HTTP API 1、InfluxDB提供了丰富的API和客户端库可以随时和你的应用程序集成。你也可以随时使用curl和ApiPost、Postman这类程序来测试API接口。 2、本文章会先带大家看一些最常用的API然后再告诉大家如何使用API文档。但本文中不会对InfluxDB的全部API进行讲解。 9.1 准备token 1、在你想尝试使用HTTP API与InfluxDB进行交互时首先应该用账号和密码登到WebUI上选择或创建一个对应的API TOKEN。课程中我们使用tony’s Token这是一个具有全部权限的API Token实际开发时应谨慎使用防止Token被劫持出现安全问题。 2、在后面的操作中你每次发出HTTP请求时都需要在请求头上携带token。 9.2 准备接口测试工具 1、在shell中你可以使用curl测试接口不过带图形界面的程序终归是更易用一些。本文选用ApiPost这一专门的接口测试软件进行演示。ApiPost是一款国产软件对标的是google的postman截至视频课录制时ApiPost的最新版本是 6 易用性比上一个 版本有大幅提升用起来很顺手。 9.2.1 安装ApiPost 1、大家可以直接访问ApiPost的官网下载对应系统的安装包 https://www.apipost.cn/ 9.2.2 准备调试环境 1、在左侧的目录栏上有一个文件夹 按钮点一下创建一个新的目录。 2、给目录命名同时为这个目录添加一个公用header。这样这个目录下的所有接口都会自动带上这个header不需要我们再一个个地手动设置了。我们之前提到过要想使用InfluxDB的API请求头上必须要加上token。所以我们就把token设为公用header。 9.3 接口的授权 9.3.1 Token授权方式 9.3.1.1 成功什么样 1、现在我们先来看一下授权是否是成功的。 首先点击左侧的目录名称右键会弹出一个菜单栏。点击新建接口 你可以自定义一个接口的名称然后在接下来的 URL 栏里填写 http://localhost:8086/api/v2/authorizations 点击发送。 接下来我们可以看到页面的下方弹出了返回的数据。这个接口返回的数据我们InfluxDB上目前所有的Token信息包括他们拥有什么权限。成功看到数据说明我们的Token是有效的。 最后记得点击保存或者使用CtrlS快捷键。这样我们目录下面才会真正留下一个接口。方便你日后访问。 9.3.1.2 失败什么样 1、我们也可以看一下授权失败是什么效果。 在目录上点击右键再点击编辑目录。 将Authotization请求头关掉. 点击右下角的保存 现在回到我们的接口调试页面上再次点击发送。可以看到状态码为 401 而且数据的json告诉我们没有授权。 记得回去将目录的公共请求头放开继续进行后面的操作。 9.3.2 登录授权方式 1、登录授权其实是留给Web UI用的但是你也可以尝试用这种方式获取授权。InfluxDB服务端会判断你的cookie是否合法、以及是否过期。符合要求的话就能调用接口实现一系列操作。 2、进行接下来的操作前记得关闭目录下的公用请求头。 9.3.2.1 创建登录会话 1、在InlfluxDB api v2 目录下创建一个新的接口 2、给接口自定义一个名称 3、请求的类型选择POST填写目标的URL 4、配置登录信息 在请求连接的下方点击一下“认证”按钮在认证方式上选择 Basic auth 认证在下方的输入框上输入InfluxDB的用户名和密码课程中是tony, 11111111 。 5、点击发送。 9.3.2.2 登录原理 1、 什么是Basic auth认证 你常见的认证方式可能是将用户名和密码放到post请求的请求体中再发送给服务端进行认证。不过我们刚才并没有在请求体里放用户名和密码而是配置了一个叫Basic auth认证的东西。这个功能叫做http基本认证是http协议的一部分。 基本认证的默认实现是 1 把用户名和密码用英文冒号拼起来也就成了tony:11111111 2 再将拼起来的字符串用 Base64算法编码。tony:11111111的Base64编码为 dG9ueToxMTExMTExMQ 3 给编码结果 dG9ueToxMTExMTExMQ添加一个前缀Basic所以最后的结果 就是。 Basic dG9ueToxMTExMTExMQ 4 把这个字符串放到一个key为authorization 的请求头中发送给服务端。 2、查看请求头 3、所以你可以在页面下方查看这次请求的请求头如图所示它就是我们基本认证的结晶。在众多的编程语言中base 64 算法都会作为标准库的一部分存在。你可以在python中验证tony:11111111的base64编码结果。 4、查看响应头我们还可以看一下这次请求的响应头你可以看到响应头上有一个key为set-cookie的键值对。set-cookie键其实会向浏览器或者编程语言中的 Session对象添加一个全局 cookie。 5、以后每次的请求就会自动携带这个cookie以后InfluxDB的接口服务就会依据这个cookie来判断请求方是否有权限进行相关操作。ApiPost也有记录cookie的功能你可以在ApiPost的Cookie管理器中查看已经设置的全局cookie。 6、查看Cookie管理器 ApiPost的Cookie管理器在页面的最上方。 弹出的窗口就是Cookie管理器。下面首先会列出你的域名或者host老师这里是localhost点一下可以看到它下面的全部cookie。 再点一下influxdb-oss-seesion就可以看到这个cookie的内容可可以看到它跟刚才响应头的set-cookie内容一模一样。 9.3.2.3 验证授权效果 1、接下来我们会到之前的列出所有 token的接口里去在目录共享请求头关闭的前提下调用api。 2、直接点击发送按钮 3、响应码为 200 且成功出现了数据说明我们现在是有权限的可以点击下面的请求头按钮看一下这次请的请求头。 9.3.2.4 关闭全局cookie再查看效果 1、接下来我们关闭全局cookie再查看效果。 在ApiPost中打开Cookie管理器按图中操作关闭Cookie。 再次向 /api/v2/authorizations 发送请求。可以看到我们这次没权限了 再次查看请求头。这次我们失去了cookie。 9.3.2.5 小结 1、这一节我们了解用登录的方式获取授权。但是大家还要注意两点 http基本认证默认实现的安全问题 我们前面讲过http基本认证其实就是把tony:11111111的Base64编码放在的请求头上但是Base64只是一种数据的编码方式它不是加密算法也不是信息摘要算法。这也就是说一旦我的请求被拦截那对方就能看到我的用户名和密码对我实施中间人攻击。 2、如图所示Base64编码的字符串也可以被解码为明文。 3、所以从安全角度考虑不应当在开发时将Web UI暴露在公网上。而且集成应用时授权也千万不可以用登录方式应该全部使用token。 4、Cookie有过期时间 当你和别的应用进行集成时也不应该使用登录的方式登录授予的cookie是有过期时间的大概半小时cookie就会过期。用户必须重新登录拿到新的 cookie 才能和InfluxDB继续交互。授权的内容就说到这了。 5、大家进行后面操作的时候记得恢复目录的公用请求头并关闭Cookie。这样我们就还是使用token授权的方式完成后面的一系列操作。 9.4 接口安全配置HTTPS 1、HTTP是一种纯文本通信协议。早期很多互联网协议都是使用明文的方式来传输数据的。这样最大的问题就是如果我们的网络请求被劫持那么劫持的一方可以看到我们请求中的所有数据包括Token,这样就算是使用Token进行授权比user:password安全一些但泄漏Token也会带来很多麻烦事。所以InfluxDB官方强烈建议我们开启HTTPS。 9.4.1 使用openssl生成证书 1、下面是官方给出的命令模板。 sudo openssl req -x509 -nodes -newkey rsa:2048 \ - keyout /etc/ssl/influxdb-selfsigned.key \ - out /etc/ssl/influxdb-selfsigned.crt \ - days NUMBER_OF_DAYS2、自己跑的时候可以参考做一下调整命令解释 req -x509指定生成自签名证书的格式。newkey rsa:2048生成证书请求或者自签名整数时自动生成密钥然后生成的密钥 名称由keyout指定。rsa:2048意思是产生rsa密钥位数是 2048 。keyout指定生成的密钥名称。out证书的保存路径days证书的有效期限单位是day天,默认是 365 天。 3、现在我们执行下面的命令 openssl req -x509 -nodes -newkey rsa:2048 \- keyout /opt/module/influxdb2_linux_amd64/selfsigned.key \ - out /opt/module/influxdb2_linux_amd64/selfsigned.crt \ - days 604、执行这个命令后会让你输入更多信息。你可以直接全部敲回车将这些字段留空。不影响生成我们有效的证书文件。执行完这个命令后/opt/module/influxdb2_linux_amd/ 目录下会产生两个文件一个是 selfsigned.crt证书文件另一个是selfsigned.key密钥文件。而且他们的有效期是 60 天 5、至此你的密钥文件就成功生成了 9.4.2 确保启动influxd的用户对密钥整数文件有读取权限 9.4.3 启动influxd服务时指定证书和密钥路径 1、使用influxd命令启动InfluxDB服务时记得指定一下整数的密钥的路径。 ./influxd --tls-cert/opt/module/influxdb2_linux_amd64/selfsigned.crt \ - -tls-key/opt/module/influxdb2_linux_amd64/selfsigned.key9.4.4 验证HTTPS协议是否生效 1、回到我们的ApiPost6再次向http:/localhost:8086/api/v2/authorizations发送GET请求。 2、可以看到我们使用http的协议头再进行访问响应的状态码为 400 并提示我们向HTTPS服务器发送了一个HTTP请求。现在我们将URL前面的http改成https再试一下。 3、如果你也能达到这个效果说明influxd的ssl/tls认证已经开启服务端和客户端传递的将会是加密数据而非明文数据。 9.4.5 记得更改已存在的telegraf配置和Scrapers 1、我们之前在WebUI中配置过Telegraf配置和指标的抓取任务当时我们配的是http协议的URL 现在也需要全部换成https。 9.5 其他生产安全考虑 1、HTPS是InfluxDB开发时最基础也是最该考虑的安全措施除此之外InfluxDB在设计时还为用户考虑了其他的安全措施这里给大家简单地介绍一下不再进行操作演示。 9.5.1 IP白名单 1、可以参考: https://docs.influxdata.com/influxdb/v2.4/security/enable-hardening/这个IP白名单并不是限制谁可以访问我的。 而是限制我InfluxDB的查询可以访问谁的。因为FLUX语言具有发送网络请求的能力你可以使用InfluxDB的相关配置限定FLUX脚本可以向哪些地址发送请求。 9.5.2 机密管理 1、这一块的内容可以参考https://docs.influxdata.com/influxdb/v2.4/security/secrets/ 2、假如我们的自己的应用程序和InfluxDB集成而用到的一段FLUX脚本刚好需要使用某个第三方服务的用户名和密码比如查询mysql。 3、比如 import influxdata/influxdb/secrets import sql sql.from( driverName: postgres, dataSourceName: postgresql://tony:11111111localhost, query:SELECT * FROM example-table, )4、应用和InfluxDB服务之间走的也是HTTP通信那么写在脚本中的用户名和密码是有可能泄漏的。这个时候你可以把用户名和密码用键值的方式放到InfluxDB管理起来然后你就可以在脚本里用key的方式在InfluxDB里获取tony的用户名和密码了。 import influxdata/influxdb/secrets import sqlusername secrets.get(key: POSTGRES_USERNAME) password secrets.get(key: POSTGRES_PASSWORD) sql.from( driverName: postgres, dataSourceName: mysql://${username}:${password}localhost, query:SELECT * FROM example-table, )这样我们Mysql的用户名和密码就没有在网络上泄漏的风险了。 9.5.3 token管理 1、可以参考https://docs.influxdata.com/influxdb/v2.4/security/tokens/ 2、我们之前讲过在Web上去创建token。这里再给大家补充一下Token的类型。 操作者Token。操作者令牌有跨越组织的管理权限它对InfluxDB OSS 2.x上的所有组织和资源有完全的读写访问权限。某些操作必须需要操作员权限比如 查看服务器配置。操作者 Token是在InfluxDB初始化设置的过程中创建的。要想再创建一个操作者Token就必须使用先有的操作者Token。 3、由于操作者Token对InfluxDB中所有的组织具有完全的读写访问权限。因此InfluxDB建议为每个组织创建一个全权限Token并用这些Token来管理InfluxDB。这有助于防止组织间不小心误操作对方资源。 全权限Token。对单个组织中所有资源的完全读取和写入访问权限读/写 Token。对组织中特定的存储桶进行读取和写入。 9.5.4 禁用部分开发功能 1、可以参考https://docs.influxdata.com/influxdb/v2.4/security/disable-devel/ 2、nfluxDB的API中有一部分是为了方便外部系统去监控和观测InfluxDB的状态和性能的。如果你觉得这部分可能影响安全那么你可以随时把它们禁了。 3、比如 /metrics上文给大家演示过这里面有各种监控InfluxDB运行的指标Web UI用户的图形界面交互。/debug/pprof这个接口里面是Go语言程序的运行时指标比如堆内存用了多少有多少线程数等等。 9.6 如何使用API文档 9.6.1 查看API文档 1、可以直接在浏览器上访问 http(s)/localhost:8086/docs 这样可以直接看到对应当前InfluxDB版本对应的API文档。 2、另外也可以在InfluxDB官网上查看在线文档 https://docs.influxdata.com/influxdb/v2.4/api/ 9.6.2 测试工具与OpenAPI 1、如果你访问的是本地部署的 InfluxDB那么访问http://localhost:8086还能下载相应的 OpenAPI文档。 2、访问http://localhost:8086/doc 页面的顶部有一个Download按钮点一下。浏览器里会 说下载了一个json文件。 可以打开看一下这其实是一个符合 OpenApi 3 .0格式的API文档定义文件。现在的ApiPost和Postman对这一格式都能自动生成接口测试。此处我们拿postman作为演示。 9.6.3 示例Postman快速生成测试项目 9.6.3.1 使用postman导入openapi 1、在postman的左侧目录上方有一个import按钮点一下会弹出一个对话框。 2、可以看到这里他说支持上传OpenApi格式的文件。点击Upload Files按钮选择刚才下载的swagger(2).json。 3、最后点击右下角的Import按钮。 9.6.3.2 查看导入效果 1、可以看到InfluxDB 中的全部API已经导入到postman中了。 2、但是这里没有文档中的说明性文字了。找回他们的方法是在postman的左边找到draft点击一下再点击右方的 Documentation。如下图所示 3、现在你就可以看到既能阅读又能立刻进行测试的API 文档了。
http://www.zqtcl.cn/news/356140/

相关文章:

  • 精致的个人网站手机网站建设基本流程图
  • 优秀网站网页设计图片主机屋做网站视频
  • 安徽网站建设电话编程一个最简单游戏代码
  • 西宁圆井模板我自己做的网站在线平面设计图
  • 浦口区网站建设技术指导做软件需要网站吗
  • 丹东有做公司网站的吗搜索引擎 wordpress
  • 做网站代理国内课程网站建设现状
  • 中国建设银行手机网站下载从零开始建设企业网站
  • 网站友情链接怎么弄seo平台
  • 建设网站一定要备案吗嘉兴做网站设计
  • 如何制作营销网站模板做外贸需要关注的网站有什么好处
  • 东莞勒流网站制作wordpress 自定义字段 查询
  • 温州网站开发风格做影视剧组演员垂直平台网站
  • c 网站开发培训怎么做网站的站点地图
  • html 网站模板简单网站制作北京海淀
  • 大庆做网站找谁珠海网站搭建
  • 网站建设方面的外文宿迁房产网找房
  • 运营 网站遵义网站开发制作公司
  • 动力论坛源码网站后台地址是什么网站上微信支付功能
  • 网站需求分析模板深圳3d制作
  • 宿迁网站建设推广公司wordpress忘记密码了
  • 成都双语网站开发flat wordpress
  • 大连做公司网站的公司网络营销的网站
  • 做网站 人工智能怎么做商业服务网站
  • 自助建站公司四平市住房和城乡建设部网站
  • 淄博网站seo价格世界新闻最新消息
  • 网站开发 毕业答辩pptwordpress qq邮箱订阅
  • 国家icp备案网站群辉域名登录wordpress
  • 仙居住房和城乡建设规划局网站可以做思维导图的网站
  • 企业网站建设费怎么入账石家庄定制网站建设服务