PHP API 框架開發的學習

2021-09-20 11:37:05 字數 3067 閱讀 5979

php api 框架開發的學習

基於網際網路的應用正變得越來越普及,在這個過程中,有更多的站點將自身的資源開放給開發者來呼叫。對外提供的api 呼叫使得站點之間的內容關聯性更強,同時這些開放的平台也為使用者、開發者和中小**帶來了更大的價值。

在開發api前,你需要的是給api設定乙個框架,這個框架一定是要簡單的且是容易擴充套件的。下面就是用就來看看如何使用php來建立乙個api。

api框架需要的特性

api框架的組成部分

api framework主要由下面三中型別元素組成:

在乙個執行的api中,每種型別的元素都有其自己的任務。下面就來詳細說說每一種元素。

通常的api請求url如下:

service

service class是api請求的控制器。這個class包含了api可以使用的method,所以service class會需要計算和處理資料。

為了使method可以被請求,你需要將method設定為公開(public),並為service method設定請求型別(get, post, put, delete)。

下面是乙個service class的類,你可以設定預設的請求方式為get,並且version method可以接受get和post請求。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<?php

classmyapi_service_helloworldextendsapi_service_iservice

publicfunctionexecute($params,$config)

publicfunctionversion($params,$config)

} 這裡是乙個可以使用的使用的api請求型別:

如果你希望方法( method)名以駝峰式命名的話,如:

public mynewhelloworld{}

那麼你就需要在你的url中使用」my-new-hello-world」來請求這個方法(/v1/helloworld/my-new-hello-world.xml)。

hook

hook是乙個可以繫結特定行為的類。哪些hooks 會在執行力中執行特定的點(如圖所示)。它可以讓你在服務使用前修改資料。下面是一些可能的hook示例:

上面的只是一些示例,你可以發揮你的想象任意的新增hook。下面是乙個關於hook的例項:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

classapi_hook_blockipextendsapi_hook_ihook}}

為了使上面的hook可以正常的工作,你需要在config檔案中新增這樣一行:

block = ip1,ip2,ip3

接下來就是講解不同種類的hook了:

如果要啟用鉤子則需要到程式的入口(endpoint.php)進行修改。

parsers

解析器用來轉化資料到特定的輸出格式的。例如是xml,機械器就是用定義的api請求副檔名來表示。例如:

你可以根據自己的需求定義標準的解析器,如:

下面是一種類似php中print_r的輸出格式示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

classapi_parser_printrextendsapi_parser_iparser

} 框架會根據命名規則自動尋找適合的輸出格式。

要順利的開發乙個php api,除了以上的這些還需要做的有:

建立乙個基本的api配置檔案,並修改好程式的入口。

配置自己想要的rest url結構。

記錄介面中產生的錯誤。~

分類: 

php

關於框架開發

紀念 jar library installation jar檔案複製的目錄 2種方式區別 1.add checked libraries to project build path 把build path中引入的包指向myeclipse中lib的位置,就是把myeclipse中你需要的lib作為外...

框架開發1

config.inc.php配置檔案 cfg array cfg host localhost cfg user root cfg password 111111 conf.class.php讀取配置檔案的資訊,封裝類 單例類 class conf final protected function ...

Karrigell Web框架開發簡介

karrigell 是乙個語法簡潔直觀的 python web 框架。它支援任何一種資料庫,orm或者模板引擎,也可以讓開發人員選擇不同的編碼方式。karrigell 包自帶乙個功能強大的 web伺服器和乙個用 python 寫成的資料庫引擎 pydblite 在自帶的 demo 程式中使用到了這個...