導航:首頁 > 編程語言 > phpapi介面開發教學

phpapi介面開發教學

發布時間:2024-05-25 02:50:41

❶ Docker php 入門實踐(三)


在本教程的其餘部分,我們將基於 ThinkPHP 框架完成一個天氣查詢的應用。使用 天氣查詢-API文檔-開發指南-Web服務 API | 高德地圖API 的介面來實現我們的功能。把查詢數據緩存到 MySql 中,這樣就不用每次頻繁的請求第三方的介面了(有請求次數限制)


選擇高德開放平台-天氣查詢 API 主要是因為它是免費的。當然你也可以使用其他的第三方天氣查詢介面,看個人喜好。
該應用是一個非常簡單的 REST API 應用,主要實現兩個介面。



在我們進行應用編碼之前,首先使用 Docker 安裝並運行 ThinkPHP



ThinkPHP 是一個免費開源的,快速、簡單的面向對象的 輕量級PHP開發框架 ,是為了敏捷WEB應用開發和簡化企業應用開發而誕生的。ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡代碼的同時,更注重易用性。遵循 Apache2 開源許可協議發布,意味著你可以免費使用ThinkPHP,甚至允許把你基於ThinkPHP開發的應用開源或商業產品發布/銷售 。

這就是為什麼我選擇它作為本教程的教學框架。我不想讓你因為一個框架而放棄,但我也不想從頭開始建立所有的東西,因為該教程的重點是Docker,而不是我們的PHP應用。


用Docker 創建 ThinkPHP 應用 實際上比用本地配置PHP環境所需的操作少。並且為我們還需要使用 Composer,多虧了Docker,我們甚至不需要在主機上安裝它。


首先打開你的終端,創建一個項目目錄。



並進入到該目錄中



現在使用[官方Composer Docker鏡像](https://hub.docker.com/_/composer/)安裝 ThinkPHP 。



如果你查看weather-app/目錄,你會看到 ThinkPHP 6 的項目目錄,如下所示:




我們的 docker 運行命令與第二章中的命令相似,但我們使用了不同的鏡像。我們沒有使用運行hello.php 腳本的 PHP 鏡像,而是使用了一個 Composer 鏡像。讓我們來看看有什麼變化。




項目創建完成後,我們需要添加幾個路由 URL 和 Controller 文件 。讓我們打開 weather-app 目錄下的 app/controller , 然後新建 Weather.php 文件,內容如下:



然後打開 weather-app 目錄下的 app/route , 在 app.php 文件中追加如下內容:




現在我們可以在 Docker 容器中運行我們的應用程序,只是為了驗證我們的程序是否運行正常,因為我們只添加了兩個路由 URL。打開命令行,運行。


現在,在瀏覽器中打開 http://localhost:38000/weather-app/public/index.php/weather/1,你應該看到一個空頁面,上面有以下文字:


那麼恭喜你,你剛剛已經成功地在 Docker 中運行了你的第一個 ThinkPHP 應用程序。


這次我們使用的docker run命令與我們用來運行 hello.php 腳本 和composer create-project ...的兩個命令不同。原因是這次我們想獲得包含 Apache 的最新版本的PHP,這樣我們就可以為我們的 Web 應用提供服務。讓我們更詳細地了解新增的命令部分。




你可以通過向終端發送一個 "中斷 "信號來停止和退出終端。在 windows 上,這可以通過按 Ctrl 和按c來實現。




運行你的新網路應用程序的另一個選擇是在 "Detached"模式中運行容器。這意味著你在終端將不會看到來自你的容器的輸出。這可以通過在我們之前的命令中添加-d標志來實現。




在分離模式下啟動容器後,你的終端將顯示新容器的完整ID--類似於a70d25c2a7cedae673f8ab...如果你想停止這個容器,你可以使用docker stop命令,用容器的ID告訴Docker。比如說



因為輸入整個ID是很麻煩的,如果你願意,Docker允許你只輸入前三個或更多的字元。




最後,我建議為你的容器命名。我們在本書後面的許多例子中都會這樣做,因為用名字來記住一個容器比用隨機分配的ID要容易得多,再加上ID是隨機的,所以每次你運行一個新版本的容器時,它都會得到一個新的ID。只要不是已經有一個同名的容器,名字就可以多次發出來。為了給我們的新應用容器命名,我們可以用傳入的--name標志重新創建它。



在使用docker run命令時,還有許多可用的選項,所以你可能想更詳細地閱讀文檔。在我們開發其餘的應用程序時,我們會涉及其中的一些選項。


現在我們要引入高德的天氣 SDK ,在使用該 SDK 之前你需要閱讀高德開放平台-天氣查詢的技術文檔,再添加 SDK 之前我們首先要確保所有現有的容器都停止了。



這個命令將列出所有正在運行的容器。你也可以通過添加-a標志來查看停止的容器。
如果有任何容器正在運行,那麼在我們繼續前進之前,使用docker stop 來停止它們。



該命令將在你的項目中裝新的軟體包。在這個過程中,你應該在終端看到一些類似這樣的輸出。



現在 SDK 已經安裝完畢,可以使用了。


我們將使用剛剛添加的高德天氣 SDK 來完善我們的業務邏輯,打開 controller 目錄下的 Weather.php 添加以下內容:




我們做了一些更新--主要是對引入天氣 API 初始化天氣類



我們的應用程序已經初步完成了向API傳遞一個真實的位置ID並返回一些數據。首先,使用這個高德位置查詢找到一個位置ID。我使用的是上海的ID進行測試。310000,當然你直接傳 上海 也是可以的。ok,讓我們再次運行Docker容器。



並在你的瀏覽器中訪問正在運行的應用程序,地址是http://localhost:38000/weather-app/public/index.php/weather/310000。你應該可以看到一個JSON數據,看起來像這樣。



你的 Docker 化的 PHP 應用程序現在正從外部數據源返回真實數據,並在Apache中提供服務,但你可能會注意到,它的速度並不快(我的頁面載入時間為1.92秒!)。
高德天氣 API 是一個免費的服務,其他國家可能無法訪問。為了解決這個問題,我們將把查詢的數據保存在我們自己的 MySQL 資料庫中,可以再下次訪問的時候可以快速地響應。這將極大地提高性能,下個章節我們將學習如何用 Docker 將 MySql 與 PHP 應用程序相結合。

❷ PHP 的API介面

使用PHP寫api介面是經常做的,PHP寫好介面後,前台就可以通過鏈接獲取介面提供的數據,而返回的數據一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的來源是什麼,有可能是別人非法調用我們的介面,獲取數據,因此就要使用安全驗證

原理

從圖中可以看得很清楚,前台想要調用介面,需要使用幾個參數生成簽名。

時間戳:當前時間

隨機數:隨機生成的隨機數

口令:前後台開發時,一個雙方都知道的標識,相當於暗號

演算法規則:商定好的運算規則,上面三個參數可以利用演算法規則生成一個簽名。前台生成一個簽名,當需要訪問介面的時候,把時間戳,隨機數,簽名通過URL傳遞到後台。後台拿到時間戳,隨機數後,通過一樣的演算法規則計算出簽名,然後和傳遞過來的簽名進行對比,一樣的話,返回數據。

演算法規則

在前後台交互中,演算法規則是非常重要的,前後台都要通過演算法規則計算出簽名,至於規則怎麼制定,看你怎麼高興怎麼來。

我這個演算法規則是

❸ 如何使用PHP的CodeIgniter框架來編寫API介面

1.將解壓的框架包放到的你的php環境的www/api目錄下:這里建立api目錄作為測試項目目錄。並運行localhost/api/index.php,就可以看到環境界面了

9.在瀏覽器中運行介面,根據不同的參數返回不同的數據。

獲取的是json數據

localhost/api/index/php?username=張三&format=json

獲取的是xml數據

localhost/api/index/php?username=張三&format=xml

❹ 如何使用PHP調用API介面實現天氣查詢功能

最近在做微信公眾平台測試時,想在裡面子菜單上添加查詢未來幾天(包括今天)天氣的功能,就查找了下好用的天氣預報查詢介面API,使用比較多的有:國家氣象局天氣介面、新浪天氣預報介面、網路天氣預報介面、google天氣介面、Yahoo天氣介面等等,我使用的是網路提供的免費天氣查詢介面API,下面與大家分享下...

1、查詢方式:

網路提供的是根據緯度和城市名查詢天氣情況

2、介面事例:


閱讀全文

與phpapi介面開發教學相關的資料

熱點內容
壓縮干糧圖片 瀏覽:836
怎麼看網站被加密的視頻 瀏覽:846
哪個app可以弄會動的照片模板 瀏覽:272
如何關閉電腦的時鍾源伺服器 瀏覽:902
adb命令設置主屏幕應用 瀏覽:990
編譯後的bak文件 瀏覽:259
php生成文件名 瀏覽:880
日照智能車輛移動機器人導航演算法 瀏覽:115
解壓力的食療 瀏覽:125
密鑰如何加密隨機數 瀏覽:381
統計學中pre的演算法 瀏覽:411
inline函數在編譯時不做類型檢查 瀏覽:268
經緯度查詢android 瀏覽:762
vivoz5x方舟怎麼進伺服器 瀏覽:498
vivox50安卓微信人臉支付怎麼開啟 瀏覽:895
cmd退出python命令 瀏覽:533
恢復u盤加密隱藏的文件 瀏覽:923
對某個人加密應該用公鑰 瀏覽:1000
機頂盒中央1加密 瀏覽:97
單片機的出現有什麼影響 瀏覽:231