說明文章

如何使用 Insomnia

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

步驟:

  1. 開啟 Insomnia
  2. 建立新專案
  3. 按一下「建立」>「要求集合」

 

 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 使用。 

步驟:

  1. 前往 TI API 入口網站。
  2. 前往所需的 API 頁面。
  3. 展開其中一種方法。
  4. 選擇"試用」。
  5. 選擇"執行」。
  6. 將會開啟程式碼片段的標籤頁面。

 

在 Insomnia:
 

  1. 將集合匯入 Insomnia 後,請選擇方法,然後按向下箭頭。
  2. 選擇"產生程式碼"。

 

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