当前位置: 首页 > 科技观察

开始使用Dark构建Serverless后端

时间:2023-03-15 00:54:07 科技观察

无服务器的早期承诺之一是更快地解决问题,因为您不再需要先构建基础设施才能开始开发。一年前,我在更新日志的播客中听说了Dark,并立即产生了兴趣。Dark于2019年作为“一种整体编程语言、结构化编辑器和用于构建后端服务的基础设施”首次亮相。虽然听起来有点神秘,但显然是为了谈论REST,换句话说,“Dark是一种构建无服务器后端服务的新方法”。黑暗有点像萨尔萨舞课,你会觉得老师很棒而且很有节奏感。处理HTTP和JSON就像跳舞一样,有着相同的节奏和步调。您发送一个请求并获得JSON格式的响应,一些您已经知道的约定,一些您可以学习。对于本文,我假设您至少熟悉音乐。Dark界面的作用是将一些繁琐的交互自动化,更重要的是,你不用为它写任何代码!在某种程度上,它向我们展示了一个不再需要编码、通过语音识别和改进的用户界面实现民主化的未来。虽然那个未来有点遥远,但发现模式是明智的。下面我们直接进入Dark的工作界面。您只需根据您的用户名在浏览器中声明一个URL,即可立即创建一个您可以开始工作的画布。下面我为“eastmad-thenewstack”创建了一个画布,并在上面为“/greeting”端点写了一个GET响应。立即得到来自“builtwithdark”域的响应。这很棒而且反应灵敏。但我们要做的是相反,向未实现后端服务的端点发出新请求:回到我的画布,Dark已将响应跟踪存储为404列表,因此我们可以使用它快速:通过单击GET旁边的那个+符号,我们将能够像上面响应“/greeting”一样响应“/leaveing”的GET请求。这就是所谓的TDD(TraceDrivenDevelopment,跟踪驱动开发)。几乎任何你通过逆向工程跟踪的东西都会让你感觉有点像侦探——但我认为它更像一个黑客,除了我们正在监视请求。BacktoDark,现在支持OAuth2,一种资源所有者、客户端应用程序和资源服务器之间用令牌语言表达的三向授权信任。Dark还提供了一个创建SlackAPP后端服务的例子,一个可见的Slackbot。虽然示例很复杂,但它让我们有机会使用一些有用的技术组件,例如OAuth。即使您拥有Slack工作区的管理员访问权限,该平台的安全性仍然受到精心管理。快速浏览一下api.slack.com/app会显示一个“CreateApplication”设置,通过查看基本属性可以得到很多信息:(注意:句号在代表应用程序的数字中间ClientID,说明一定是字符串处理)现在我们要多了解一下Dark的奥秘了。我们需要在Slack中创建一个重定向URL,以启动我们的跟踪过程(请参阅“OAuth和权限”)。Dark希望用户使用“/oauth-redirect”作为Canvas的路径,通过Slack来管理分发和复制可共享的URL。最后我们还需要有一些调用后端服务的请求,我们将通过单击Darkcanvas来调用请求并开始跟踪。事实上,它已经在我们的画布的404列表中等待,我们现在可以创建它对GET的响应:到目前为止一切顺利,我们已经触发了重定向并且可以看到Dark获取的完整请求。那么我们返回什么?从上面的Slack中,我们得到了“ClientId”和“ClientSecret”,因此我们可以在Dark中创建一个POST并返回。现在,我们需要创建一个POST消息正文,这是您需要考虑JSON格式的地方——尽管Dark对此有点无知。当我们选择发送响应时,Dark会像其他优秀的IDE一样向我们展示相关参数。SlackAPI的URL、消息正文和两组都是字典类型的键值对。消息正文的实际格式如示例所示,其中client_id和client_secret可以用作字符串,您可以直接使用。我们可以直接和Slack的OAuthAPI通信,注意“code”的值取自Dark(上图底部)收到的请求,支持JSON解析,所以可以输入“request.queryParams.code”。发送POST请求时,我们期望返回的是正确的访问令牌。本文将停止后续工作,如果您想继续示例,请按照上面的链接进行后端演练,以创建一个简单的Slackbot。以上工作不能保证每次都成功,但一定要有反馈信息。因此,即使它失败了,它也很有启发性。结论我们从中学到了什么?智能用户界面与熟悉的模式配合得很好,这些模式是IDE和静态语言的用户多年来一直在使用的模式。REST仍然是实现和理解API的最佳方式。更复杂的场景应该鼓励更多地使用像Dark这样的工具来帮助探索服务产品。与各种独立的信托机构合作或他们的模拟是理解它的好方法,尽管它仍然很复杂。这就像拥有一堆叮当响的钥匙和门禁卡,但仍需要知道使用它们的顺序。不要停止练习。译者介绍徐磊,社区编辑,某知名电商技术副总监,专注于Java后端开发、技术管理、架构优化、分布式开发等领域。原标题:HowtoGetStartedBuildingServerlessBackendswithDark,作者:DavidEastman