1. Go to this page and download the library: Download lamansky/api library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lamansky / api example snippets
use Lamansky\Api\ReadOnlyEndpoint;
use Lamansky\Api\Responder;
class HelloWorldEndpoint implements ReadOnlyEndpoint {
public function getRoutePattern() : string {
return '/hello-world/';
}
public function get() : Responder {
return new Responder(Responder::OK, 'text/plain', 'Hello world!');
}
}
use Lamansky\Api\Api;
$api = new Api('/api');
$api->registerEndpoint(new HelloWorldEndpoint());
$api->getResponder()->sendResponseAndDie();
use Lamansky\Api\ItemEndpoint;
use Lamansky\Api\Responder;
class ExampleItemEndpoint implements ItemEndpoint {
public function getRoutePattern() : string {
return '/example-item/[i:id]/';
}
public function get(int $id=null) : Responder {
return new Responder(Responder::OK, 'text/plain', (string)$id);
}
public function put(int $id=null) : Responder {
return new Responder(Responder::NOT_IMPLEMENTED);
}
public function delete(int $id=null) : Responder {
return new Responder(Responder::NOT_IMPLEMENTED);
}
}
public function post(string $title=null, string $content=null, id $category_id=null) : Responder {
// Save item and return a Responder
}
use Lamansky\Api\CollectionEndpoint;
use Lamansky\Api\ItemEndpoint;
use Lamansky\Api\Responder;
use Lamansky\Api\JsonView;
class BlogPostJsonView extends JsonView {
public function render($blog_post) : array {
return ['id' => $blog_post->id, 'title' => $blog_post->title, 'content' => $blog_post->content];
}
}
class BlogPostItemEndpoint implements ItemEndpoint {
public function getRoutePattern() : string {
return '/post/[i:id]/';
}
public function get(int $id=null) : Responder {
// TODO: Use the ID to get the BlogPost object from your database
return (new BlogPostJsonView())->single($blog_post);
}
public function put(int $id=null) : Responder { return new Responder(Responder::NOT_IMPLEMENTED); }
public function delete(int $id=null) : Responder { return new Responder(Responder::NOT_IMPLEMENTED); }
}
class BlogPostCollectionEndpoint implements CollectionEndpoint {
public function getRoutePattern() : string {
return '/post/';
}
public function get() : Responder {
// TODO: Get all the BlogPost objects in an array
return (new BlogPostJsonView())->multiple($blog_posts);
}
public function post(int $id=null) : Responder { return new Responder(Responder::NOT_IMPLEMENTED); }
}
use Lamansky\Api\Api;
use Lamansky\Api\ItemEndpoint;
use Lamansky\Api\Responder;
use Lamansky\Api\JsonResponder;
use Lamansky\Api\JsonView;
class TestItemEndpoint implements ItemEndpoint {
public function getRoutePattern() : string {
return '/test/[i:id]/';
}
public function get(int $id=null) : Responder {
if ($id < 1) return new Responder(Responder::NOT_FOUND);
$test = new Test($id);
return (new TestJsonView())->single($test);
}
public function put(int $id=null) : Responder {
return new Responder(Responder::NOT_IMPLEMENTED);
}
public function delete(int $id=null) : Responder {
return new Responder(Responder::FORBIDDEN);
}
}
class Test {
public $id;
public function __construct(int $id) {
$this->id = $id;
}
}
class TestJsonView extends JsonView {
public function render($test) : array {
return ['id' => $test->id];
}
}
$api = new Api('/api');
$api->registerEndpoint(new TestItemEndpoint());
$api->getResponder()->sendResponseAndDie();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.