DevOps-Programming Basics with Python 18

Project: API Request to GitLab

ZONGRU Li
Jun 5, 2023

API Request with Python

這邊做一個小的程式練習,透過Python去呼叫外部系統的API

在此這個外部系統API範例即是使用GitLabAPI

也就是兩個應用程式間的溝通(PythonGitLab)可以怎麼實踐

這邊使用的常見Protocol就是HTTP request

由於之前其他課程原因,我在Gitlab上面有許多示範專案

然後嘗試用PythonGitLab API來取得專案清單

而一個應用系統去發動API Request(或稱API Call)給另一個系統

所以首先GitLab必須存在有這些API給別的系統呼叫

Implementation

Python中,本身是沒有可以呼叫或說發動HTTP Request的語法API

所以要找到如下的Python Library也就是Module(LINK):

放大也可以看到:

所以這邊透過pip來先安裝上述的Python Library

#從上面網站複製pip安裝指令:
pip install requests

看到:

然後可以開始寫呼叫的程式:

接著問題就是要找到GitLab有釋出的API的URL

然後可以找到(LINK):

要找到只顯示自己ProjectsAPI:

找到(LINK):

而這邊要特別注意的是,GitLabbase API位置是:

#這邊要特別注意的是,GitLab的base API位置是:
https://gitlab.com/api/v4

#所以我們要的URL其實是:
https://gitlab.com/api/v4/users/:user_id/projects

然後定義一個物件來承接APIResponse,並印出內容:

得到200的成功http狀態碼

這邊可以印出responsetext內容會看到:

看到其文字內容的型別,會是字串,不容易處理:

而這邊response物件則可以轉為json來處理,改寫成:

另外各專案的URL位置的json key(等下會用到):

以上我們就確認了json後的物件比較會是我們想拿到的物件格式

接著就是照之前for迴圈來處理這個多筆的內容:

上面有加了\n的換行符號,比較能清楚顯示結果

這邊也可以改成查找講師的GitLab專案清單:

當前main.py內容為:

(除了main.py以外沒有其他程式)

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet