SoftLayer_User_Customer_ApiAuthentication :: getUser не выполнен с исключением - PullRequest
0 голосов
/ 23 мая 2018
package main

import (
        "fmt"

        "github.com/softlayer/softlayer-go/services"
        "github.com/softlayer/softlayer-go/session"

)

func main() {
            // SoftLayer API username and key
            username := "my-username"  // used actual username and api-key
            apikey := "My-APIkey"

            // Create SoftLayer API session
            sess := session.New(username, apikey)

            // Get SoftLayer_Account service
            resp := services.GetUserCustomerApiAuthenticationService(sess)
            users, err := resp.GetUser()
            if err != nil {
                    fmt.Printf("\n Unable to get users:\n - %s\n", err)
                    return
            }
            fmt.Printf("\n Unable to get users:\n - %s\n", users)
    }

===== $ ./list_user

Невозможно получить пользователей:

- SoftLayer_Exception: объект не существует для выполнения метода.(SoftLayer_User_Customer_ApiAuthentication :: getUser) (HTTP 500)

Я пробовал подобный код, чтобы получить объект.Это бросает то же исключение.

1 Ответ

0 голосов
/ 23 мая 2018

Причина, по которой вы получаете эту ошибку, заключается в том, что оба метода должны использовать идентификатор User_Customer_ApiAuthentication.

Вы можете использовать следующий код для обоих методов, так как они будут использовать один и тот же идентификатор аутентификации:

package main

import (
    "fmt"
    "encoding/json"
    "github.com/softlayer/softlayer-go/services"
    "github.com/softlayer/softlayer-go/session"

  )

  func main() {
        // SoftLayer API username and key
        username := "my-username"  // used actual username and api-key
        apikey := "My-ApiKey"

        // Create SoftLayer API session
        sess := session.New(username, apikey)

        // Get SoftLayer_Account service
        resp := services.GetUserCustomerApiAuthenticationService(sess)
        users, err := resp.Id(123456).GetUser()
        if err != nil {
                fmt.Printf("\n Unable to get users:\n - %s\n", err)
                return
        }
        //Following helps to print the result in json format.
        jsonFormat, jsonErr := json.MarshalIndent(users,"","     ")
        if jsonErr != nil {
               fmt.Println(jsonErr)
               return
        }
        fmt.Println(string(jsonFormat))
}

Если вам нужно получить указанный выше идентификатор аутентификации, вы можете использовать метод SoftLayer_User_Customer :: getObject и найти реляционное свойство apiAuthenticationKeys , которое будет его содержать.

...