用代码检测API分析代码

134 阅读7分钟

*{box-sizing: border-box; } body {margin: 0;}*{box-sizing:border-box;}body{margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px;}。

世界是靠代码运行的。我们生活的每一个方面几乎都以某种方式、形状或形式由代码处理。它可能隐藏在幕后运行,但它在我们的日常活动中无处不在。清晨,我们被闹钟或手机应用程序唤醒,在智能设备或电视上消费新闻和媒体,订购食物堂食、外卖或外送,甚至只是浏览交通,从A点到B点,代码是这一切背后的驱动力。

因此,运行世界的代码已经成倍增长,而且随着更多的应用程序和服务旨在渗透到我们的生活中,它每天都在继续增长。这些代码中的大部分并不只存在于一个人的电脑上。它是由一群人编写、分享和讨论的,而用于分享和讨论这些代码的工具无法跟上。

但这不仅仅是一个 "团队 "的问题。你有没有在网站上遇到过没有标签或分类的代码片段?当然,你有。我们都遇到过。

开发人员需要工具来帮助检测、标记、格式化和充实他们的代码,而代码检测API就是为了这个明确的目的而创建的。

什么是代码检测API?

代码检测API是一个由RuntimeAPILayer共同建立的代码处理器。Runtime的工作重点是开拓代码的检测、处理、标记、充实和转换--即技术语言处理。他们负责的Pieces应用程序可以即时保存代码片段,从屏幕截图中提取代码,并从这些片段中提供代码自动完成的能力。APILayer不仅建立了可扩展和高性能的RESTful APIs,而且还建立了这些APIs运行的几乎永远在线的基础设施。

代码检测API使用起来很简单,它可以确定提供的字符串是自然语言还是技术语言(即代码)。如果它检测到的是代码,它可以高度准确地识别语言。最好的部分是代码检测API的速度;它只需要大约250毫秒来分析和识别提供的输入。它不仅速度极快,而且最大限度地减少了设备上的计算资源。

因此,无论你正在开发什么软件,无论是文档网站、论坛、在线代码编辑器,还是专注于开发人员的工具,你都需要代码检测API。

为什么使用Code Detection API?

Code Detection API是一个易于使用的API,它可以检测、处理、标记、丰富和转换代码,你不会找到任何其他服务或解决方案可以提供所有这些功能。

快速代码检测

代码检测API使用Runtime的机器学习模型确定所提供的文本字符串是否包括代码片段。

准确的分类

有很多技术语言,而代码检测API可以准确地检测30种语言,包括JavaScript、PHP、C#、Ruby、Go、HTML、Markdown、C和C++。

丰富和转换片段

代码检测API可以生成语法高亮的和截断的代码版本。

改善SEO

使用代码检测API对您网站的代码片段进行分类,并使用生成的元数据来改善索引,这将提高您网站的知名度。

高度的可扩展性

代码检测API运行在APILayer的云基础设施上,它可以满足你最小和最大的需求。

无与伦比的速度

Runtime的技术语言处理器在几毫秒内分析代码,而APILayer通过其闪电般的基础设施提供响应。

接近100%的正常运行时间

虽然没有什么是100%的,但APILayer的服务的正常运行时间是最接近的。

它是如何工作的

开始使用代码检测API很容易。首先,你需要创建一个Runtime.dev账户。在验证了您的电子邮件地址并登录后,您将进入Runtime开发者控制台。

Runtime Developer ConsoleRuntime Developer ConsoleRuntime Developer Console

您需要一个API密钥来使用Code Detection API,虽然在技术上您可以免费获得一个(14天的试用),但您必须提供一张信用卡来开始试用。要获得密钥,请点击Runtime Developer Console中的Discover Products按钮,选择你想要的计划,并输入你的付款信息。

开始试用后,您将被重定向到Runtime Developer Console,在那里您可以找到您的API密钥(和秘密),以及使用cURL的示例请求及其响应。

find your API key (and secret), plus an example requestfind your API key (and secret), plus an example requestfind your API key (and secret), plus an example request

快速教程

让我们使用代码检测API来评估一些任意的文本。但是,需要注意的是,在撰写本文时,Code Detection API不支持CORS。因此,你不能在浏览器中直接使用JavaScript发送请求。因此,下面的代码示例将使用PHP和Guzzle HTTP库。注意:Guzzle库并不是必须的,你可以用cURL函数达到同样的效果。

首先,通过调用Client() 构造函数创建一个Guzzle HTTP客户端对象。

$client = new GuzzleHttp\Client();

下一步是向Code Detection API发送一个POST 请求。该请求应包括apiKey URL参数,并设置为你的API密钥,请求主体必须是JSON格式,如以下代码所示。

$response = $client->request('POST', 'https://api.runtime.dev/tlp?apikey=your_api_key', [
    'json' => [
        'iterable' => [
            ['value' => '$my_obj->method();']
        ]
    ]
]);

这段代码使用客户端对象的request() 方法,并传递三个参数。第一个参数是HTTP方法,第二个参数是要发送请求的URL,第三个参数是一个指定请求体的数组。要发送JSON,主体数组的键必须是字符串json ,其值是一个对象或数组,可以被序列化为以下结构。

{
  "iterable": [
    { "value": "text to process" }
  ]
}

iterable 属性是一个输入数组。每个输入是一个具有value 属性的对象,其值是Code Detection API应该评估的文本。你必须在请求中包括至少一个输入。

API用一个JSON有效载荷来响应。下面是上述请求的截断响应。

truncated response from the above request:truncated response from the above request:truncated response from the above request:

和请求一样,响应也有一个叫做iterable 的属性,它是一个数组,包含了对请求的输入的结果分析。正如你所期望的,响应iterable 数组的索引与请求iterable 数组的索引直接对应。

每个结果都有naturalLanguagecodeClassification 属性,每个属性都是一个对象,它有一个result 属性。naturalLanguage 对象的result 属性告诉你提供的输入是否是自然文本。如果提供的输入是代码,codeClassificationresult 则提供各种信息。

说到代码,让我们回到它。自然,你需要将JSON响应解码为对象。

$data = json_decode($response->getBody());
$data->iterable[0]->naturalLanguage->result; // false in this case
$data->iterable[0]->codeClassification->result->current; // the language of the input; PHP in this case 
$data->iterable[0]->codeClassification->result->likelihood; // percentage of surety the input is the current’s language

价格

Code Detection API有三个订阅计划。每个计划都授予你API点数和各种功能。很明显,更高级的订阅计划授予更多的API点数并提供额外的功能。

Code Detection API pricing tableCode Detection API pricing tableCode Detection API pricing table

没有免费的计划;但是,无论你选择哪种订阅,你都可以获得14天的免费试用。你必须提供一张信用卡才能开始试用。这三个计划是。

计划说明
基本计划这个计划让你开始使用1,000个API点数和对要求的文本进行基本分析。
专业计划该计划提供6,000个学分和对所请求的文本进行更完整的分析。
企业级该计划提供36,000个API点数和与专业计划相同的分析。
自定义需要更多?请与他们联系,建立一个定制计划,以满足您的需求。

总结

开发人员必须面对的代码继续以指数形式增长。如果您或您的团队正在编写让开发人员查看、分享和讨论代码的软件,那么您需要将代码检测API集成到您的应用程序中。开始使用是快速而简单的。所以今天就开始吧!