PHP API Tutorial Training Server: Implementation of a REST API for learning purposes

Recommend this page to a friend!
  Info   View files Example   View files View files (87)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2021-09-11 (Yesterday) RSS 2.0 feedNot yet rated by the usersTotal: 29 This week: 1All time: 10,285 This week: 182Up
Version License PHP version Categories
training-server 1.0.0MIT/X Consortium ...5HTTP, PHP 5, Libraries, Web services
Description Author

This package provides an implementation of a REST API for learning purposes.

It provides all the files to implement an API using REST HTTP requests, including user authentication using OAuth.

The package provides an API example implementation endpoints to demonstrate features like registered user access, setting cookies in the API responses, and retrieving file data as responses.

It also provides files to set up a Docker container to test the provided API.

Picture of Kamil
  Performance   Level  

 

Details

Training server for RestControl

TrainingServer contains several REST endpoints e.q. with oAuth/basic authentication, which you can use for learning RestControl.

Installation

 make build
 make first-run

Start server

 make start

Usage

 # Run all tests
 make run-tests

Endpoints

-> Plain api(without any authorization)

(GET) http://IP_ADDR/plain/users

Sample response:

[
  [
      "id": 1,
      "name": "Sample name",
      "email": "sample@email.com",
      "password": "sample_long_password_string",
      "remember_token": null,
      "created_at": "2018-01-01 10:00:00",
      "updated_at": "2018-01-01 10:00:00",
  ],
  [
      "id": 2,
      "name": "Sample name",
      "email": "another@email.com",
      "password": "sample_long_password_string",
      "remember_token": null,
      "created_at": "2018-01-01 10:00:00",
      "updated_at": "2018-01-01 10:00:00",
  ],
]

(GET) http://ID_ADDR/plain/files/csv (GET) http://ID_ADDR/plain/files/css (GET) http://ID_ADDR/plain/files/js (GET) http://ID_ADDR/plain/files/png (GET) http://ID_ADDR/plain/cookies

-> Basic auth

(GET) http://IP_ADDR/basi-auth

Sample response:

 [
    "status": "ok"
 ]

-> oAuth2 Endpoints

(POST) http://IP_ADDR/oauth2/token

> Form params: > - grant_type(optional): password, client_credentials > - client_id: string > - client_secret: string > - username: string > - password: string > - scope(optional): string > > Seeds: > - Password grant client > - client_id: 10 > - client_secret: F0NVue12qNwayx3pKJLHfJmQouOZg40YZafjjdHZ

(GET) http://ID_ADDR/oauth2/users - Return list of users.

>Headers: > - Content-Type: application/json > - Authorization: Bearer ACCESS_TOKEN > >

Sample response:

[
  [
      "id": 1,
      "name": "Sample name",
      "email": "sample@email.com",
      "password": "sample_long_password_string",
      "remember_token": null,
      "created_at": "2018-01-01 10:00:00",
      "updated_at": "2018-01-01 10:00:00",
  ],
  [
      "id": 2,
      "name": "Sample name",
      "email": "another@email.com",
      "password": "sample_long_password_string",
      "remember_token": null,
      "created_at": "2018-01-01 10:00:00",
      "updated_at": "2018-01-01 10:00:00",
  ],
]
  Files folder image Files  
File Role Description
Files folder imageDocker (5 files)
Files folder imageserver (9 files, 7 directories)
Files folder imagetests (2 files, 1 directory)
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file Makefile Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

 Version Control Unique User Downloads Download Rankings  
 100%
Total:29
This week:1
All time:10,285
This week:182Up

For more information send a message to info at phpclasses dot org.