學習使用PHP和GraphQL來建構API

PHPz
發布: 2023-06-19 15:42:01
原創
1054 人瀏覽過

隨著網路技術的發展,前後端分離的架構已經成為了Web開發的主流。而在前後端分離的架構中,API是連結前後端的重要橋樑。在建構API時,php和GraphQL作為兩個流行的技術框架,廣受開發者的青睞。本文將介紹如何使用PHP和GraphQL建構API。

一、 PHP建置API

PHP是一種廣泛應用於Web開發的開源腳本語言,其應用範圍涵蓋網站開發、資料庫應用、日誌處理、影像處理等多個方面。在建構API時,PHP可以作為後端語言,透過與前端進行資料交互,將資料傳輸到前端。

  1. 安裝PHP

首先,我們需要安裝PHP環境。可以透過在命令列視窗輸入以下命令來檢查本機是否已經安裝好了PHP:

php -v
登入後複製

如果顯示了PHP的版本號,則表示已經安裝了PHP環境。若未安裝,則需前往[PHP官網](https://www.php.net/)下載並安裝。

  1. 選擇框架

在PHP中,有多個框架可供選擇,例如Laravel、Symfony、Zend等等。其中,Laravel是廣泛應用於PHP Web應用程式開發的框架。以下是使用Laravel框架建立API的步驟。

  1. 建立專案

透過在命令列視窗輸入以下命令,可以在本機建立一個名為"myapp"的Laravel專案:

composer create-project laravel/laravel myapp --prefer-dist
登入後複製
  1. 建立控制器

在建立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進行定義。

  1. 路由

在Laravel中,可以透過路由來處理API的請求。可以透過以下程式碼來為剛才建立的API新增路由:

Route::get('/users', 'MyController@getAllUsers');
登入後複製

其中,'/users'代表請求的URL位址,'MyController@getAllUsers'代表處理該要求的控制器方法。

  1. 執行專案

最後,可以透過以下指令來執行建立好的Laravel專案:

php artisan serve
登入後複製

透過存取'http://localhost: 8000/users',即可查看所有使用者資訊的JSON格式資料。

二、 GraphQL建構API

相較於RESTful API,GraphQL的優點在於可以讓前端發起一個精確的查詢,來取得所需的數據,降低了資料庫查詢的壓力。下面我們就介紹如何使用GraphQL建構API。

  1. 安裝GraphQL

GraphQL可以作為獨立的API服務啟動,所以需要先安裝。可以透過以下指令來安裝GraphQL:

npm install graphql-yoga
登入後複製
  1. 建立Schema

#在GraphQL中,需要寫一個Schema來定義API介面。 Schema描述了每一類資料的類型、每一個欄位的傳回類型以及方法的輸入和輸出參數。例如,在該Sch​​ema中,我們要定義一個User類型以及一個查詢所有使用者資訊的介面。程式碼如下:

const typeDefs = `
  type User {
    id: ID!
    name: String!
    email: String
  }
  type Query {
    getAllUsers: [User]!
  }
`;
登入後複製
  1. 寫Resolver

Resolver實作了Schema中的每一個字段,描述如何取得資料。在這個範例中,我們要查詢所以使用者資訊的Resolver程式碼如下:

const resolvers = {
  Query: {
    getAllUsers: async () => {
      const users = await User.find();
      return users;
    },
  },
};
登入後複製
  1. 執行專案

最後,執行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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!