Commit 9f7d6a50 by Mohammad Izzat Johari

initial commit

parents
## Api Documenter
### Installasi
Documenting your Api like a boss , with unittest
"autoload": {
"psr-4": {
"Laravolt\\Documenter\\": "packages/laravolt/alurkerja/documenter/src",
}
},
### How to use
buat folder `./raw-docs/` pada row
tambahkan data pada filel `TestCase.php` dengan isi
```
public $testKey = "";
public $docsCreator;
public $actor;
public function setUp(): void
{
parent::setUp();
$this->testKey = md5(date("ymdhis"));
$this->docsCreator = ApiDocsCreator::setup("./raw-docs/", $this->testKey);
}
```
### Mendokumentasikan URL
dokumentasikan dengan 1 command di bawah ini
```php
$this->docsCreator->appendReport(<URL>, <Method>, <Title>, <Grouping>, <Requesst>, <Response>);
```
Contoh:
```php
$this->docsCreator->appendReport('/api/bpmn/' . $this->processDefinitionKey . '/startEvent/spec', "GET", "Detail LHP", "LHP", [], $response);
```
### Generate Apidoc
Generate Api doc pada folder docs
```
apidoc -i raw-docs -o docs
```
{
"name": "alurkerja-laravolt/qa",
"type": "package",
"version": "0.0.1",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"php": "^8.1",
"doctrine/dbal": "^3.6",
"laravolt/camunda": "^2.3",
"laravolt/laravolt": "^5.6"
},
"autoload": {
"psr-4": {
"Laravolt\\QA\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
}
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
"sort-packages": true,
"allow-plugins": {
"pestphp/pest-plugin": true,
"php-http/discovery": true
}
},
"minimum-stability": "stable",
"prefer-stable": true
}
<?php
namespace Laravolt\QA;
use FilesystemIterator;
use Illuminate\Support\ServiceProvider;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
class ApiDocsCreator
{
public $filename;
public $testFolder;
public $myfile;
public static function setup($testFolder, $filename)
{
if (!file_exists($testFolder ."/". $filename)) {
mkdir($testFolder . $filename, 0777 , true);
}
$apidocs = new ApidocsCreator();
$apidocs->filename = $filename;
$apidocs->testFolder = $testFolder;
return $apidocs;
}
public function appendReport($path, $method, $name, $group, $request, $response)
{
$filename = $method. join(explode(" ", $name)). ".php";
$myfile = fopen($this->testFolder ."/". $this->filename . "/" . $filename, "w") or die("Unable to open file!");
$json_pretty = json_encode(json_decode($response->getContent()), JSON_PRETTY_PRINT);
// echo $json_pretty;
$docs = "
/**
* @api {" . $method . "} $path Request $name
* @apiName $name
* @apiGroup $group
*@apiParamExample {json} Request-Example:
* " . json_encode($request) . "
*
*@apiSuccessExample {json} Success-Response:
* HTTP/1.1 " . json_encode($response->status()) . " OK
* " . $json_pretty . "
*
*/";
fwrite($myfile, $docs);
fclose($myfile);
# code...
}
}
<?php
namespace Laravolt\QA;
use Illuminate\Support\ServiceProvider as BaseServiceProvider;
class DocumenterServiceProvider extends BaseServiceProvider
{
/**
* Bootstrap the application services.
*/
public function boot(): void
{
}
/**
* Register the application services.
*/
public function register(): void
{
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment