kot13 / Bootstrapi
A better framework for building API with PHP. Built using Slim 3, Eloquent, Zend-ACL
Stars: ✭ 86
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
Dashboard Server
A JSON file RESTful API with authorization based on json-server
Stars: ✭ 48 (-44.19%)
Mutual labels: restful, json-api
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
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
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
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
Demo Laravel Json Api
Demo of JSON API integration with a Laravel Application
Stars: ✭ 68 (-20.93%)
Mutual labels: json-api
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:
- Slim3 http://www.slimframework.com/
- ORM Eloquent https://laravel.com/docs/5.5/eloquent
- Zend ACL https://zendframework.github.io/zend-permissions-acl/
- JsonApi https://github.com/neomerx/json-api
- JWT https://github.com/firebase/php-jwt
- SwiftMailer http://swiftmailer.org/
- ApiDocJS http://apidocjs.com/
- PHP dotenv https://github.com/vlucas/phpdotenv
Demo
Example client (Ember.js application)
Requirements
- PHP >= 5.6
- Composer
- Nginx / Apache
- MySQL / PostgreSQL
- NodeJs && NPM && ApiDocJs (for docs generate)
Donate
Bitcoin payments: 1LLw4WuBz1oUSjQFntfQutD2T8mGZiA7pZ
Installing
- create new project
$ composer create-project -n -s dev pmurkin/bootstrapi my-api
- change config files:
$ nano .env
$ nano config/apidoc.php
$ nano version.sh
- 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>
- migration
$ php partisan migrate:up
- migration
$ php partisan run:seed
- 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].