說明文章

如何使用 Insomnia

TI 的所有 API 均以 OpenAPI 文件的形式提供,可匯入至 Insomnia 等工具。您可以前往 https://insomnia.rest/ 免費下載 Insomnia。

  • 開啟 Insomnia
  • 建立新專案
  • 按一下「建立」>「要求集合」
  • 匯入 TI OpenAPI 檔案
  • 前往 Mange 環境
    • 確保您的基本環境包含以下變數。

                            {
                            "base_url": "{{ scheme }}://{{ host }}{{ base_path }}"
                            }

  • 更新基本環境後,請選擇 transact.ti.com 環境。
  • 使用您的 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