All Projects → kot13 → Bootstrapi

kot13 / Bootstrapi

A better framework for building API with PHP. Built using Slim 3, Eloquent, Zend-ACL

Projects that are alternatives of or similar to Bootstrapi

Tns Restful Json Api
This is the code repository that goes along with the "TheNewStack" article for RESTful JSON API post
Stars: ✭ 846 (+883.72%)
Mutual labels:  restful, json-api
Gores
Go package that handles HTML, JSON, XML and etc. responses
Stars: ✭ 94 (+9.3%)
Mutual labels:  restful, json-api
Videosniffer
视频嗅探服务(VideoSniffer API Service On Android)
Stars: ✭ 68 (-20.93%)
Mutual labels:  restful, json-api
lurch
A simple Ruby JSON API client.
Stars: ✭ 15 (-82.56%)
Mutual labels:  json-api, restful
Dashboard Server
A JSON file RESTful API with authorization based on json-server
Stars: ✭ 48 (-44.19%)
Mutual labels:  restful, json-api
Flowa
🔥Service level control flow for Node.js
Stars: ✭ 66 (-23.26%)
Mutual labels:  restful
Graceful
Elegant Python REST toolkit built on top of falcon
Stars: ✭ 73 (-15.12%)
Mutual labels:  restful
Tigo
Tigo is an HTTP web framework written in Go (Golang).It features a Tornado-like API with better performance. Tigo是一款用Go语言开发的web应用框架,API特性类似于Tornado并且拥有比Tornado更好的性能。
Stars: ✭ 1,130 (+1213.95%)
Mutual labels:  restful
Jsonapi Client
JSON API (jsonapi.org) client for Python
Stars: ✭ 63 (-26.74%)
Mutual labels:  json-api
Dbwebapi
(Migrated from CodePlex) DbWebApi is a .Net library that implement an entirely generic Web API (RESTful) for HTTP clients to call database (Oracle & SQL Server) stored procedures or functions in a managed way out-of-the-box without any configuration or coding.
Stars: ✭ 84 (-2.33%)
Mutual labels:  restful
Hexo Generator Restful
Generate RESTful json data for Hexo plugins.
Stars: ✭ 82 (-4.65%)
Mutual labels:  restful
Restful mapper
ORM for consuming RESTful APIs in C++
Stars: ✭ 71 (-17.44%)
Mutual labels:  restful
Laravel Restful Api Starter
Build a RESTful API with Laravel and MongoDB
Stars: ✭ 66 (-23.26%)
Mutual labels:  restful
Spring Boot Api Project Seed
🌱🚀一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目~
Stars: ✭ 8,979 (+10340.7%)
Mutual labels:  restful
Dorado
基于Netty4开发的简单、轻量级、高性能的的Http restful api server
Stars: ✭ 65 (-24.42%)
Mutual labels:  restful
Jsonapiframework
JsonApiFramework is a fast, extensible, and portable .NET framework for the reading and writing of JSON API documents. Currently working on ApiFramework 1.0 which is a new framework that supports the many enhancements documented in the 2.0 milestone of this project while being media type agnostic but will support media types like {json:api} and GraphQL for serialization/deserialization purposes.
Stars: ✭ 85 (-1.16%)
Mutual labels:  json-api
Silverstripe Restfulapi
SilverStripe RESTful API with a default JSON serializer.
Stars: ✭ 63 (-26.74%)
Mutual labels:  restful
Github Monitor
Github Sensitive Information Leakage Monitor(Github信息泄漏监控系统)
Stars: ✭ 1,166 (+1255.81%)
Mutual labels:  restful
Restfm
RESTful web services for FileMaker server.
Stars: ✭ 76 (-11.63%)
Mutual labels:  restful
Demo Laravel Json Api
Demo of JSON API integration with a Laravel Application
Stars: ✭ 68 (-20.93%)
Mutual labels:  json-api

Gitter Build Status Scrutinizer Code Quality Total Downloads License

bootstrapi

A better framework for building API with PHP. Built using Slim 3, Eloquent, Zend-ACL

Feature

  • JWT authentication
  • Validation request
  • ACL role based
  • Support base CRUD operation
  • Filtering && Sorting && Pagination
  • DB migration
  • CLI-tools
  • JSONAPI negotiation
  • Generated documentation
  • Code generator commands
  • Log

Inside:

Demo

Example documentation

Example client (Ember.js application)

Client repo

Requirements

  • PHP >= 5.6
  • Composer
  • Nginx / Apache
  • MySQL / PostgreSQL
  • NodeJs && NPM && ApiDocJs (for docs generate)

Donate

Bitcoin payments: 1LLw4WuBz1oUSjQFntfQutD2T8mGZiA7pZ

Installing

  1. create new project
$ composer create-project -n -s dev pmurkin/bootstrapi my-api
  1. change config files:
$ nano .env
$ nano config/apidoc.php
$ nano version.sh
  1. configure server

Example configuration for nginx:

server {
    listen 80 ;
    server_name     hostname;
    error_log       /path/to/nginx/logs/hostname.error.log;
    access_log      /path/to/nginx/logs/hostname.access.log;
    index           /frontend/index.html index.html;

    root   /path/to/projects/hostname;

    location ~* (.+\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|woff|woff2|ttf|eot|svg))$ {
        root   /path/to/projects/hostname/frontend;
        try_files       $uri =404;
    }

    location ~ /api/ {
        if (!-e $request_filename) {rewrite ^/(.*)$ /public/index.php?q=$1 last;}
    }

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        fastcgi_pass   127.0.0.1:9000;
    }

    location / {
        if (!-e $request_filename) {rewrite ^/(.*)$ /frontend/index.html?q=$1 last;}
    }
}

server {
    listen 80 ;
    server_name     docs.hostname;
    error_log       /path/to/nginx/logs/hostname.error.log;
    access_log      /path/to/nginx/logs/hostname.access.log;
    index           index.html;
    root            /path/to/projects/hostname/docs;

    location / {
        try_files $uri $uri/ /index.html?$args;
    }

    location ~* (.+\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|woff|woff2|ttf|eot|svg))$ {
        try_files $uri =404;
    }
}

server {
    listen 80 ;
    server_name     static.hostname;
    error_log       /path/to/nginx/logs/hostname.error.log;
    access_log      /path/to/nginx/logs/hostname.access.log;

    root            /path/to/projects/hostname/public/uploads;

    location ~* (.+\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar|woff|woff2|ttf|eot|svg))$ {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, PATCH, DELETE, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since';
        try_files $uri =404;
    }
}

Example configuration for apache:

<VirtualHost *:80>
   ServerName hostname
   DocumentRoot "/path/to/projects/hostname/"

   <Directory "/path/to/projects/hostname/public/">
       # use mod_env for define environment variables
       SetEnv APPLICATION_ENV develop
       SetEnv SECRET_KEY mysecretkey
   
       # use mod_rewrite for pretty URL support
       RewriteEngine on
       # If a directory or a file exists, use the request directly
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       # Otherwise forward the request to index.php
       RewriteRule ^api/(.*)$ /index.php?q=$1 [L]

       # use index.php as index file
       DirectoryIndex index.php

       # ...other settings...
       # Apache 2.4
       Require all granted

       ## Apache 2.2
       # Order allow,deny
       # Allow from all
   </Directory>
</VirtualHost>

<VirtualHost *:80>
   ServerName docs.hostname
   DocumentRoot "/path/to/projects/hostname/docs"

   <Directory "/path/to/projects/hostname/docs">
       # use index.html as index file
       DirectoryIndex index.html

       # ...other settings...
       # Apache 2.4
       Require all granted

       ## Apache 2.2
       # Order allow,deny
       # Allow from all
   </Directory>
</VirtualHost>
  1. migration
$ php partisan migrate:up
  1. migration
$ php partisan run:seed
  1. generate documentation (optional)
$ php partisan generate:docs
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].