도움글

Insomnia 사용법

TI는 Insomnia와 같은 툴로 가져올 수 있는 OpenAPI 문서로 모든 API를 제공합니다. Insomnia는 https://insomnia.rest/에서 무료로 다운로드할 수 있습니다.   

단계:

  1. Insomnia를 엽니다
  2. 새 프로젝트를 만듭니다
  3. 생성 > 수집 요청을 클릭합니다

 

 4. TI OpenAPI 파일을 가져오기합니다.

 5. 환경 관리로 이동합니다.

  • 기본 환경에 다음 변수가 포함되어 있어야 합니다.
    • {
                                  "base_url": "{{ scheme }}://{{ host }}{{ base_path }}"
                                  }

 6. 기본 환경을 업데이트한 후 transact.ti.com 환경을 선택합니다.

 7. "oauth2ClientId"를 귀하의 TI 스토어 API 키로, "oauth2ClientSecret"을 귀하의 TI 스토어 API 암호로 업데이트합니다.


코드 조각 사용 방법

구현에서 사용할 수 있는 코드 조각은 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