shipu/hackerrank-api

PHP和Laravel HackerRank代码检查API

v1.1 2018-03-28 10:46 UTC

This package is auto-updated.

Last update: 2024-09-19 10:41:11 UTC


README

Latest Stable Version Latest Unstable Version License

HackerRank代码检查API。一个极简单的REST API。支持超过一打语言。所有都由可靠的HackerRank服务器驱动。您可以使用自己的评分系统或构建自己的在线判题系统。

支持40多种编程语言。

安装

Themevel是一个Laravel包,因此您可以通过Composer安装它。从您的项目目录中运行以下命令

composer require shipu/hackerrank-api

稍等片刻,Composer将自动在您的项目中安装Themevel。

Laravel配置

下载完成后,您需要在config/app.php配置文件中调用此包服务。为此,在app.phpproviders数组中添加此行

Shipu\HackerRank\HackerRankServiceProvider::class,

要使用外观,您需要在app.phpaliases数组中添加此行

'HackerRank' => Shipu\HackerRank\Facades\HackerRank::class,

现在在您的终端中运行此命令以发布此包资源

php artisan vendor:publish --provider="Shipu\HackerRank\HackerRankServiceProvider"

发布您的配置文件后,打开config/hackerrank.php并添加您的HackerRank应用密钥

return [
    /*
    |--------------------------------------------------------------------------
    | HackerRank API KEY
    |--------------------------------------------------------------------------
    |
    | https://www.hackerrank.com/api/
    |
    */

    'api_key' => env('HACKERRANK_API_KEY', 'YOUR_HACKER_RANK_API_KEY'),
];

您还可以在.env中添加API密钥

 HACKERRANK_API_KEY = YOUR_HACKER_RANK_API_KEY

就是这样。

API列表

  • languages()
  • submission($lang, $source, $testcases = [ "1" ], $format = 'json', $wait = true, $callback_url = '')

用法

use Shipu\HackerRank\HackerRank;

$config = [
            "api_key"     => 'hackerrank_app_key',
        ];
        
 
 $hackerRank = new HackerRank($config);
 
 $allLanguages = $hackerRank->checker()->languages();
 
 var_dump($allLanguages->data);

对于Laravel用法

use Shipu\HackerRank\Facades\HackerRank;
//..
//..
$allLanguages = HackerRank::checker()->languages();

dd($allLanguages->data);

代码提交

use Shipu\HackerRank\Facades\HackerRank;
//..
//..
$response = HackerRank::checker()->submission('php', '<?php echo "It's Working"; ?>');

dd($response->data);

带测试用例的代码提交

use Shipu\HackerRank\Facades\HackerRank;
//..
//..
// Problem is returns the sum of two integers.
// Problem link: https://www.hackerrank.com/challenges/solve-me-first
// Submit code with two tescase example.

$response = HackerRank::checker()->submission('php', '<?php
               function solveMeFirst($a,$b){
                 return $a+$b;
               }
               $handle = fopen ("php://stdin","r");
               $_a = fgets($handle);
               $_b = fgets($handle);
               $sum = solveMeFirst((int)$_a,(int)$_b);
               print ($sum);
               fclose($handle);
           ?>', 
           ["1\n2", "2\n3"]);

// output array respectively as test cases
dd($response->data->result->stdout);

Beerpay支持

嘿兄弟!帮帮我几个🍻吧!

Beerpay Beerpay