javascript - 跨语言界面——它们存在吗?

标签 javascript php interface

<分区>

我想知道,这些天我修复了较旧的 Web 应用程序,但我经常偶然发现同样的问题,但我找不到解决方案。

Javascript 应用程序通常从其他来源获取数据。就我而言,它是 php。这些 Javascript 应用程序期望以特定方式提供给它们的数据,如果它们没有以特定方式获取数据,则会发生错误并导致应用程序中断。

这可能很难调试,因为如果有人决定编辑传​​递该数据的 php 函数,他们通常不会从他们的现代 IDE 中得到任何提示,即数据可能以不正确的方式返回。

例如,有没有一种方法可以在 php 和 javascript 之间创建一个接口(interface),以便它们都需要遵守它?就像一个 php 界面。

我还知道,例如,当您使用 typescript 时,您可以为 javascript 应用程序创建一个接口(interface)。然后您可以为 php 创建相同类型的界面。

最佳答案

正如其他人所暗示的,您在这里寻找的是一个模式,它指定了您的输入和输出的格式;和更广泛的契约,它以 URL、方法名称等形式指定操作

对于 XML,模式很可能是使用 XML Schema 或 RelaxNG 指定的;对于 JSON,有 JSON Schema,可能还有其他。

根据 API 的风格,更广泛的契约会有很大差异。 WSDL 文件通常用于定义 SOAP API(这只是 XML-over-HTTP 的特定约定),Swagger 和 OpenAPI 等工具可以指定 REST 风格的 API,通常使用 JSON。

然后所有这些都可以输入到工具中,这些工具会自动生成您的实现符合其契约(Contract)的测试以及文档等。这些测试和文档实际上是您的目标:对于具有一堆 AJAX 调用的遗留网站不要形成连贯的 API,最好的起点可能是一系列单元测试,这些单元测试可以确认相同的输入在您进行更改后提供相同的输出。

关于javascript - 跨语言界面——它们存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47573945/

相关文章:

javascript - 有没有办法将输入标签的 id 作为 onclick 函数参数传递,而无需在 JSX 中实际写入 id 值?

php - 使用按钮从带有 Angular 的文本输入中添加数据

PHP SimpleXML 命名空间问题

java - 抽象类是否/可以取代接口(interface)?

c# - 在 C# 中可以使用接口(interface)实现多重继承吗?

javascript - 如何在 Canvas 中创建障碍

javascript - 一种测试javascript方法的方法

javascript - 配置文件: JS vs INI

javascript - 如何在多部分表单上使用 AJAX、Javascript 和 PHP?

c++ - 如何在 C++ 中实现自定义标准集合?