目錄(275章)
倒序
- cover
- 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 更新時間:2021-07-03 00:02:54
推薦閱讀
- 現代C++編程:從入門到實踐
- Spring Boot開發與測試實戰
- 程序員面試算法寶典
- RTC程序設計:實時音視頻權威指南
- Access 2010數據庫基礎與應用項目式教程(第3版)
- Learn WebAssembly
- 征服RIA
- 深度強化學習算法與實踐:基于PyTorch的實現
- Getting Started with Python Data Analysis
- Node.js全程實例
- C#開發案例精粹
- 快速入門與進階:Creo 4·0全實例精講
- Learning Docker Networking
- SwiftUI極簡開發
- Web開發的平民英雄:PHP+MySQL
- ASP.NET Core and Angular 2
- HTML5 Canvas核心技術:圖形、動畫與游戲開發
- Visual C#(學習筆記)
- Roslyn Cookbook
- 面向WebAssembly編程:應用開發方法與實踐
- Getting Started with Oracle WebLogic Server 12c:Developer’s Guide
- Java程序員職場全攻略
- 組態軟件應用技術
- 完美講堂 Unity3D游戲特效設計實戰教程
- C#代碼整潔之道:代碼重構與性能提升
- Node.js實戰(第2版)
- Python編程從小白到大牛
- Python數據結構學習筆記
- Switching to Angular(Third Edition)
- 狼書(卷3):Node.js高級技術