예제 #1
0
파일: api.php 프로젝트: jdelvecchio/forms
<?php

require_once __DIR__ . '/../app/config/config.php';
require_once __DIR__ . '/../app/api/UserDAO.php';
require_once __DIR__ . '/../app/api/Myapi.php';
$myApi = new MyApi($_REQUEST['request']);
switch ($myApi->getType()) {
    /************************GET all users**********************/
    case 'users':
        if ($myApi->getMethod() == 'GET') {
            $userDao = new UserDAO($pdo);
            $result = $userDao->findAll();
            $responseData = array();
            foreach ($result as $userId => $user) {
                $responseData[] = array('id' => $userId, 'login' => $user->getLogin(), 'password' => $user->getPassword());
            }
            echo $myApi->_response($responseData, 200);
        } else {
            echo $myApi->_response('Invalid Method', 405);
        }
        break;
    case 'user':
        /************************GET user by id**********************/
        if ($myApi->getMethod() == 'GET' && $myApi->getId() != null) {
            $userDao = new UserDAO($pdo);
            $user = $userDao->findUserById($myApi->getId());
            $responseData = array();
            if ($user != null) {
                $responseData[] = array('id' => $user->getId(), 'login' => $user->getLogin(), 'password' => $user->getPassword());
                echo $myApi->_response($responseData, 200);
            } else {
예제 #2
0
session_start();
error_reporting(0);
/**
 * Access point for all API calls
 */
set_include_path('.' . PATH_SEPARATOR . './library/MyApi' . PATH_SEPARATOR . './library/Api');
include "library/Api/Bootstrap.php";
include "library/MyApi/MyApi.php";
// Fix json encode for older PHP version than 5.2
include "library/Json/Encoder.php";
// Create request object
$request = new Api_Request("http://192.168.1.101:8080/Source/Projects/PHP/APIFramework/src/Script/");
$request->setParams(array("version", "service", "method"));
$request->analyze();
// Load config
$config = parse_ini_file("config.ini", true);
// Create Custom api instance
$api = new MyApi();
// Add modify config hook
$api->addHook("Api_Hook_ConfigModify", Api_Hook_IHook::HOOK_CONFIG_LOADED);
$api->addHook("Api_Hook_BlockIp", Api_Hook_IHook::HOOK_BEFORE_SERVICE_EXECUTE);
$api->addHook("Api_Hook_RequestLimit", Api_Hook_IHook::HOOK_BEFORE_SERVICE_EXECUTE);
$api->addHook("Api_Hook_ParserModify", Api_Hook_IHook::HOOK_MODIFY_PARSER);
// Handle api request and catch errors
try {
    $api->handle($request, $config);
} catch (Api_Error $error) {
    $response = new Api_Response($error->getCode(), null, $error);
    $api->send($response);
}
예제 #3
0
파일: index.php 프로젝트: paybreak/rpc
 */
/*
 * php -S localhost:8080 index.php
 */
include_once '../vendor/autoload.php';
class MyApi
{
    use \PayBreak\Rpc\Api;
    protected function getActions()
    {
        return ['ping' => [self::class, 'ping']];
    }
    protected function authenticate()
    {
        return true;
    }
    protected function getRequestAction()
    {
        return \PayBreak\Rpc\Request::getParam('action');
    }
    protected function getRequestParams()
    {
        return (array) \PayBreak\Rpc\Request::getParam('params');
    }
    protected function ping(array $params)
    {
        return ['pong' => true, 'request' => $params];
    }
}
$obj = new MyApi();
$obj->executeCall();