隨著網路技術的發展,前後端分離的架構已經成為了Web開發的主流。而在前後端分離的架構中,API是連結前後端的重要橋樑。在建構API時,php和GraphQL作為兩個流行的技術框架,廣受開發者的青睞。本文將介紹如何使用PHP和GraphQL建構API。
一、 PHP建置API
PHP是一種廣泛應用於Web開發的開源腳本語言,其應用範圍涵蓋網站開發、資料庫應用、日誌處理、影像處理等多個方面。在建構API時,PHP可以作為後端語言,透過與前端進行資料交互,將資料傳輸到前端。
首先,我們需要安裝PHP環境。可以透過在命令列視窗輸入以下命令來檢查本機是否已經安裝好了PHP:
php -v
如果顯示了PHP的版本號,則表示已經安裝了PHP環境。若未安裝,則需前往[PHP官網](https://www.php.net/)下載並安裝。
在PHP中,有多個框架可供選擇,例如Laravel、Symfony、Zend等等。其中,Laravel是廣泛應用於PHP Web應用程式開發的框架。以下是使用Laravel框架建立API的步驟。
透過在命令列視窗輸入以下命令,可以在本機建立一個名為"myapp"的Laravel專案:
composer create-project laravel/laravel myapp --prefer-dist
在建立API之前,需要建立一個控制器。可以輸入以下命令來建立一個控制器:
php artisan make:controller MyController
在MyController中,可以編寫API的業務邏輯程式碼。例如,在MyController中,可以編寫一個查詢所有使用者資訊的API程式碼如下:
public function getAllUsers() { $users = User::all(); // 查询所有用户信息 return response()->json($users); // 返回JSON格式的用户信息 }
其中,User代表使用者模型,可以透過Laravel的Eloquent ORM進行定義。
在Laravel中,可以透過路由來處理API的請求。可以透過以下程式碼來為剛才建立的API新增路由:
Route::get('/users', 'MyController@getAllUsers');
其中,'/users'代表請求的URL位址,'MyController@getAllUsers'代表處理該要求的控制器方法。
最後,可以透過以下指令來執行建立好的Laravel專案:
php artisan serve
透過存取'http://localhost: 8000/users',即可查看所有使用者資訊的JSON格式資料。
二、 GraphQL建構API
相較於RESTful API,GraphQL的優點在於可以讓前端發起一個精確的查詢,來取得所需的數據,降低了資料庫查詢的壓力。下面我們就介紹如何使用GraphQL建構API。
GraphQL可以作為獨立的API服務啟動,所以需要先安裝。可以透過以下指令來安裝GraphQL:
npm install graphql-yoga
#在GraphQL中,需要寫一個Schema來定義API介面。 Schema描述了每一類資料的類型、每一個欄位的傳回類型以及方法的輸入和輸出參數。例如,在該Schema中,我們要定義一個User類型以及一個查詢所有使用者資訊的介面。程式碼如下:
const typeDefs = ` type User { id: ID! name: String! email: String } type Query { getAllUsers: [User]! } `;
Resolver實作了Schema中的每一個字段,描述如何取得資料。在這個範例中,我們要查詢所以使用者資訊的Resolver程式碼如下:
const resolvers = { Query: { getAllUsers: async () => { const users = await User.find(); return users; }, }, };
最後,執行GraphQL服務,可以透過以下指令來啟動服務:
const { GraphQLServer } = require('graphql-yoga'); const server = new GraphQLServer({ typeDefs, resolvers }); server.start({ port: 4000 }, () => console.log(`Server is running on localhost:4000`) );
透過造訪'http://localhost:4000/graphql',即可使用GraphQL Playground工具測試API。
結論
本文介紹如何使用PHP和GraphQL建構API。在PHP中,可以使用Laravel框架來建立API,在GraphQL中,可以使用graphql-yoga。透過學習本文的內容,相信讀者已經對如何使用PHP和GraphQL建立API有了一定的了解,可以嘗試應用於實際專案。
以上是學習使用PHP和GraphQL來建構API的詳細內容。更多資訊請關注PHP中文網其他相關文章!