Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Copyright
Building RESTful Web Services with PHP 7
Credits About the Author About the Reviewer www.PacktPub.com
Why subscribe?
Customer Feedback Preface
What this book covers What you need for this book Who this book is for Conventions Reader feedback
Downloading the example code Errata Piracy Questions
RESTful Web Services, Introduction and Motivation
Web services
Why a web service?
REST architecture
Client server Stateless Cache-able Uniform interface
Resource identification Manipulation of resources through representations Self-descriptive messages Hypermedia as the engine of application state (HATEOAS)
Code on demand (optional) Layered system
RESTful web services
Conventions of RESTful web services HTTP verbs and URL structure
List operation Create operation READ operation Update operation Delete operation
Why RESTful web services?
REST versus SOAP
Nature of HTTP methods
Safe/unsafe HTTP methods Idempotent and non-idempotent methods
HTTP response
Response type Response codes
Case study - RESTful web service endpoints for a blog
Blog post
Requirements Endpoints
Creating blog post Reading blog post Updating blog post Delete blog post Listing all blog posts
Blog post comments
Requirements Endpoints
Creating the post's comment Reading a comment Updating a comment Deleting a post comment Listing all comments for a particular post
More resources Summary
PHP7, To Code It Better
Scalar type declaration Return type declaration Null coalescing operator Spaceship operator Group use declarations Generator-related features
What are generators? Generator return expression Generator delegation
Anonymous classes Closure::call() Errors and exceptions PHP7.1
Nullable types Symmetric array destructuring Support for keys in list() Multi-catch exception handling
More resources Summary
Creating RESTful Endpoints
Creating a REST API for a blog in PHP
Creating a database schema
Blog user/author table schema
SQL for users table
Blog post table schema Blog post comments schema
Creating a RESTful API's endpoint
Code structure Common components
DB class Router class Code sync
Creating blog post endpoints
REST client
To do
Visible flaws
Validation
Solution
Authentication
Solution
Proper 404 pages
Summary
Reviewing Design Flaws and Security Threats
Finding problems in the current code
Structural and design flaws
Missing query builder layer Incomplete router Usage of OOP Separate Configurations from Implementation Should write tests Input validation Handling 404 and other errors Meta information missing DB fields abstraction Security
Securing API endpoints
What is Auth middleware?
Common security threats in RESTful web services
Use of HTTPS Securing an API key/token
Not passing an access token in the URL Access token expiration
Limited scope access token Public and private endpoints
Public API endpoints
Insecure direct object reference Restricting allowable verbs Input validation
Available reusable code Summary
Load and Resolve with Composer, an Evolutionary
Introduction to Composer Installation
Installation on Windows Installation on Linux/Unix/OS X
Global Installation
Usage of Composer
Composer as a dependency manager Installing packages
Installing using composer.json The composer.json in detail
The require object The require-dev object The autoload and autoload-dev The scripts
The composer.lock
Composer as an auto-loader
Example
Composer for creating a project
Example
Summary
Illuminating RESTful Web Services with Lumen
Introducing Lumen
Why micro-framework? Why Lumen? What Lumen provides
What Lumen has in common with Laravel How Lumen is different from Laravel What exactly Lumen provides
A Good Structure Separate configurations Router Middle-wares Service Container and Dependency Injection HTTP responses Validation Eloquent ORM Database migration and seeding Unit testing
Installing Lumen
Configuration
Setting up the database
Writing migrations
Writing RESTful web service endpoints
Writing the first controller Lumen routes REST resource Eloquent ORM (model layer)
Creating models Eloquent relationships
Controller Implementation What we are missing?
Validation and negative cases?
/api/posts with GET method /api/posts with the POST method /api/posts/1 with the GET method /api/posts/1 with the PATCH/PUT method /api/posts/1 with the DELETE method
User authentication Other missing elements Comment Resource Implementation
Summary
Improving RESTful Web Services
Dingo, simplifying RESTful API development
Installation and configuration Simplifying routes API versioning Rate limiting Internal requests Responses
Authentication and middleware
JWT Auth setup
The Manual way Simpler way through Lumen JWT authentication integration package
Authentication
Log in Invalidate token Refresh token
Transformers
Understanding and setting transformers Using transformers
Encryption
SSL certificate, different options
Summary
API Testing – Guards on the Gates
The need for automated tests Types of testing
Unit testing Acceptance testing Functional testing Integration testing
What type of testing will we do? Testing frameworks
CodeCeption introduction Setup and understanding the structure
tests/{suite-name}/ tests/{suite-name}.suite.yml tests/_support/_generated/{suite-name}TesterActions.php tests/_support/{suite-name}Tester.php tests/_support/Helper/{suite-name}.php Creating the API suite Configuring the API suite
Writing test cases
API tests for post resource Other test cases
Summary
More resources
Microservices
Introducing Microservices
How to divide an application into microservices?
Motivation towards microservices
Maintenance and debugging Scalability Technology diversity Resilience Replaceability Parallelization
How it is different from SOA Team structure Challenges of micro-services
Infrastructure maintenance Performance Debugging and fault-finding
Logs should be centralized Logs should be searchable Track chain of requests Dynamic log levels
Implementation
Deployments Inter-services communication
Synchronous communication Asynchronous communication
Shared library or common code
Summary
What's next
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion