2017 © Pedro Peláez
 

lib rpc

a simple rpc like package for api service

image

jswh/rpc

a simple rpc like package for api service

  • Friday, June 30, 2017
  • by jswh
  • Repository
  • 0 Watchers
  • 4 Stars
  • 44 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 5 % Grown

The README.md

Make Things Simple

installation

composer require jswh/rpc

quick start with default application

index.php

``` php <?php require DIR . '/vendor/autoload.php'; $app = new \RPC\Application('Api'); echo $app->run();, (*1)

### your api file
```php
    <?php
    namesapce Api;

    class Hello
    {
        /**
         * @httpMethod GET
         * @param string $name
         * @return void
         */
        public function hello($name) {
            return 'Hello ' . $name . ' !'
        }
    }

start application

php -S localhost:8000 index.php

call api

http://localhost:8000/Hello.hello?name=world

write your own

procedure parser

    <?php
    class MyParser implements RPC\interfaces\ProcedureParser {
        public function parse($path) {
            preg_match("/(\w+)\.(\w+)$/", $_SERVER['REQUEST_URI'], $matches);
            if (count($matches) !== 3) {
                return null;
            }
            $p = new Procedure('MyApi', $matches[1], $matches[2]);

            return $p;
        }
    }

logic

    <?php
    Annotation::registerMeta('method', 'GET|PUT|POST');
    $parser = new MyParser
    $procedure = $parser->parse(null);
    $annotation = new Annotation($procedure->getClass(), $procedure->method);
    $method = $annotation->meta('method');
    if ($method && $method !== $_SERVER['HTTP_METHOD']) {
        header('', true, 404);
    } else {
        if ($method === "GET") {
            $params = $_GET;
        } else {
            $params = array_merge($_POST, $_GET);
        }
        header('Content-Type: application/json');

        return json_encode($procedure->call($params));
    }

The Versions

30/06 2017

dev-master

9999999-dev

a simple rpc like package for api service

  Sources   Download

MIT

by Avatar jswh

30/06 2017

0.2

0.2.0.0

a simple rpc like package for api service

  Sources   Download

MIT

by Avatar jswh

22/07 2016

v0.1

0.1.0.0

a simple rpc like package for api service

  Sources   Download

MIT

by Avatar jswh