草庐IT

AGV调式之软件开发—API调用

红狐狸的北北记 2024-01-30 原文

AGV调式之软件开发—API调用

1.登陆界面

2.构建一个REST API请求

①REST API请求是由特定的动词和名词组成的句子。
如果你能和你的机器人说话,你可能会说“给我你的电池电量”。REST API请求也是一个句子:您只需要知道元素的正确组合和顺序。
REST API请求的元素:

②详细解释REST API请求
(1)MEHTOD
描述你想MIR要做什么,主要使用4种HTTP方法:

(2)IP
你想要与机器人的IP地址进行通讯。

(3)API VERSION
所采用的是什么语言

(4)端点
您想访问的信息,在MiR的文档中查找端点。

MiR主要使用四种HTTP RESTful api: GET、PUT、POST和DELETE。

3.请求使用MIR的REST API文档

(1)定位文档
登录到机器人界面,然后转到Help > API documenttetlon。填写您的用户名和密码,然后选择Lounch API documenttetlon。

(2)定位文档使用
启动文档页面后,您可以浏览可用的方法。单击条目可以提供更多信息,例如成功或失败请求的示例输出。

(3)尝试命令
选择方法后,可以通过选择Try it out从文档页面执行它。然后选择水平蓝条上的Execute。响应如下所示。

4.REST API 授权头文件

授权包括验证客户端是否具有执行端点操作的权限。
在REST请求的头中,需要包含用户名和密码信息,但必须首先对其进行编码和加密。
(1)加密授权分为两步。
首先,用户名和密码需要用base64编码,格式如下:
用户名:
密码:
然后用SHA256对两者的编码组合进行加密。在机器人界面中导航Help > API文档。


(2)现在,我们已经掌握了如何构建请求和添加授权头,现在可以发送第一个请求了。

5.读取REST API响应

对带有STATUS端点的请求的响应返回关于机器人的大量信息。
(1)回复
下面的响应是JSON格式的。数据结构为名称/值对。这使得它可以自我描述,易于理解。
例如,下面我们可以看到机器人的名字(“robot_name”)是R2D2。

6.使用Postman测试REST API请求

使用Postman或类似的工具来测试API请求。
您可以使用各种工具来测试REST API请求并开发使用它们的代码:

(1)这节课将带您在名为Postman的开发工具中测试REST API请求。
在Postman中,您可以发出API请求并检查响应,而无需使用终端或编写任何代码。当您创建一个请求并单击Send时,API响应将出现在Postman用户界面中。
Postman网址:https://www.postman.com/
Postman是一个免费的开发工具,具有简单的UI,非常适合测试REST请求。Postman还可以将请求翻译成其他语言,如c#、Java和Python。




6.用Postman工作

如果您想在Postman中运行一个请求,则需要知道URL、方法和身份验证。
(1)创建请求
您的请求可以包括多个细节,以确定Postman将发送到MiR的API的数据。你需要做这些:
1.选择一个方法
2.输入一个网址
3.提供授权
可以使用 new>request 从Postman启动屏幕创建一个新请求,或者单击+按钮打开一个新选项卡。


(2)授权
您需要在Headers选项卡中添加正确的授权。键应为“Authorization”,值从机器人界面中获取。

(3)增加请求细节
Postman中的Body选项卡允许您指定要随请求发送的数据。当您想要添加或更新结构化数据时,您将需要与请求一起发送主体数据。例如,如果要发送一个更改机器人状态的请求,则应该以JSON格式包含所需的状态。通常,您将对PUT和POST请求使用主体数据。

(4)读取回复
您可以在Postman响应查看器中检查API请求的响应。API响应由主体、头部和状态代码组成。Postman在不同的标签中组织正文和标题。状态代码在选项卡旁边是可见的。

(5)状态码
每个REST请求将返回一个响应代码和内容。

7.让我们一起在Postman中发送一个REST API请求。您将使用PUT方法和状态端点清除机器人的错误状态。按下面打开邮差。

(1)The response
您以前见过以JSON格式返回的这个响应。要更改响应的语言,请使用正文部分中的下拉菜单

(2)Translating the request into code
①翻译的代码:
通过向右选择code,可以生成多种不同语言的代码片段。
②选择你的代码:
在下拉菜单中选择代码类型,可编程代码就会出现。然后可以用它来编写一个程序,调用机器人的状态。
(3)

有关AGV调式之软件开发—API调用的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. 使用 ACL 调用 upload_file 时出现 Ruby S3 "Access Denied"错误 - 2

    我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file

  4. ruby-on-rails - ActionController::RoutingError: 未初始化常量 Api::V1::ApiController - 2

    我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc

  5. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  6. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  7. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  8. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  9. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  10. ruby - 调用其他方法的 TDD 方法的正确方法 - 2

    我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent

随机推荐