2017 © Pedro Peláez
 

project phprest-api-blueprint-sample-project

Phprest Sample Project.

image

phprest/phprest-api-blueprint-sample-project

Phprest Sample Project.

  • Sunday, November 22, 2015
  • by phprest
  • Repository
  • 1 Watchers
  • 2 Stars
  • 18 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 6 % Grown

The README.md

Phprest API Blueprint Sample Project

Author Software License, (*1)

Requirements

Installation

1. Create project

composer -sdev create-project phprest/phprest-api-blueprint-sample-project /path/to/your/project

2. Configure your database settings

In app/config/orm.php set your database credentials., (*2)

3. Create database

create database tesselboard collate=utf8mb4_unicode_ci;

4. Database migrations

(from the root of your project dir), (*3)

vendor/bin/phprest-service-orm migrations:migrate

5. Database fixtures

(from the root of your project dir), (*4)

vendor/bin/phprest-service-orm fixtures:set

6. Storage dir

(from the root of your project dir), (*5)

Storage dir (app/storage) has to be writeable by the web server., (*6)

Create API Documentation

(from the root of your project dir), (*7)

hercule blueprint/0.1/blueprint.md -o public/blueprint.md;
apiary preview --path=public/blueprint.md --output=public/api_documentation.html

Testing API Documentation

vendor/bin/phprest-service-orm fixtures:set
dredd public/blueprint.md http://localhost/

API testing (spec tests)

(from the root of your project dir), (*8)

cd specs
npm install
cd ..
vendor/bin/phprest-service-orm fixtures:set
specs/node_modules/jasmine-node/bin/jasmine-node --verbose specs/tests

List your routes

(from the root of your project dir), (*9)

vendor/bin/phprest routes:get

You should get something like this:, (*10)

Method Route Handler
OPTIONS /{version:any}/camera \Api\Camera\Controller\Camera::options
GET /{version:any}/camera \Api\Camera\Controller\Camera::get
POST /{version:any}/camera \Api\Camera\Controller\Camera::post
GET /{version:any}/temperatures \Api\Temperature\Controller\Temperature::getAll
POST /{version:any}/temperatures \Api\Temperature\Controller\Temperature::post
OPTIONS /{version:any}/temperatures \Api\Temperature\Controller\Temperature::optionsAll
OPTIONS /{version:any}/temperatures/{id:number} \Api\Temperature\Controller\Temperature::options
GET /{version:any}/temperatures/{id:number} \Api\Temperature\Controller\Temperature::get
DELETE /{version:any}/temperatures/{id:number} \Api\Temperature\Controller\Temperature::delete

Nginx sample configuration

server {
    listen 80;
    server_name localhost;

    root /var/www/application/public;
    index index.php;

    location / {
        try_files $uri $uri/ @rewrite;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location @rewrite {
        rewrite ^ /index.php;
    }

    error_log /var/log/nginx/application_error.log;
}

The Versions