說明文章
如何使用 Insomnia
TI 的所有 API 均以 OpenAPI 文件的形式提供,可匯入至 Insomnia 等工具。您可以前往 https://insomnia.rest/ 免費下載 Insomnia。
步驟:
- 開啟 Insomnia
- 建立新專案
- 按一下「建立」>「要求集合」
4.匯入 TI OpenAPI 檔案。
5.前往 Manage 環境。
- 確保您的基本環境包含以下變數:
- {
"base_url": "{{ scheme }}://{{ host }}{{ base_path }}"
}
- {
6.更新基本環境後,請選擇 transact.ti.com 環境。
7.使用您的 TI store API 金鑰更新"oauth2ClientId",並使用您的 TI store API 密鑰更新"oauth2ClientSecret"。
如何使用程式碼片段
您可使用嵌入 TI API 入口網站文件的 OpenAPI 規格或使用 Insomnia 工具,利用多種不同語言產生可用於實作的程式碼片段,以供 TI API 使用。
步驟:
- 前往 TI API 入口網站。
- 前往所需的 API 頁面。
- 展開其中一種方法。
- 選擇"試用」。
- 選擇"執行」。
- 將會開啟程式碼片段的標籤頁面。
在 Insomnia:
- 將集合匯入 Insomnia 後,請選擇方法,然後按向下箭頭。
- 選擇"產生程式碼"。
VB.Net 範例
Framework 4.6.1
Imports System.Net
Imports System.IO
Imports System.Text
Imports Newtonsoft.Json.Linq
Public Class RESTAPI
Public ClientID As String
Public ClientSecret As String
Private MyToken As RESTAPI.Token
Public Function GetPricing(TiPartNumber As String) As String
If IsNothing(MyToken) Then
GetToken()
Else
If MyToken.IsValid = False Then
GetToken()
End If
End If
Return GetWithOAuth2($"https://transact.ti.com/v2/store/products/{TiPartNumber}?currency=USD&exclude-evms=true", MyToken.Token)
End Function
Private Sub GetToken()
Dim URL As String = "https://transact.ti.com/v1/oauth/accesstoken"
Dim Data As String = $"grant_type=client_credentials&client_id={ClientID }&client_secret={ClientSecret}"
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest)
request.Method = "POST"
request.ContentType = "application/x-www-form-urlencoded"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(Data)
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim result As String = reader.ReadToEnd()
reader.Close()
dataStream.Close()
response.Close()
Dim parsejson As JObject = JObject.Parse(result)
MyToken = New Token With {.Time = Now,
.Token = parsejson.SelectToken("access_token").ToString
}
End Sub
Public Function GetWithOAuth2(ByVal url As String, ByVal accessToken As String) As String
Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
request.Method = "GET"
request.Headers.Add("Authorization", "Bearer " + accessToken)
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
Dim responseStream As Stream = response.GetResponseStream()
Dim reader As New StreamReader(responseStream)
Dim result As String = reader.ReadToEnd()
reader.Close()
response.Close()
Return result
End Function
Private Class Token
Public Token As String
Public Time As DateTime
Public Function IsValid() As Boolean
If DateDiff(DateInterval.Minute, Now, Time) >= 60 Then
Return False
Else
Return True
End If
End Function
End Class
End Class