2017-08-23 1 views
1

StripesのGolang APIを使用してStripeアカウントに存在するすべてのプランのリストを取得しようとしています。ここに提供されたドキュメントに従って:https://stripe.com/docs/api/go#list_plansすべての計画のリストを返す必要があります。しかし、それは私にただ一つの計画の詳細を返す。私が見つけた面白いのGolangのStripeのすべてのプランの配列を取得

package main 

import (
    "github.com/gin-gonic/gin" 
    "github.com/stripe/stripe-go" 
    "github.com/stripe/stripe-go/plan" 

) 
func main(){ 
    router := gin.Default() 
    stripe.Key = "stripe_api_key" 

    router.GET("/plans", func(c *gin.Context) { 
     plans := GetAllPlans() 
     c.JSON(200, gin.H{ "plans": plans, }) 
    }) 
    router.Run(":8080") 
} 

func GetAllPlans() (plans *stripe.Plan){ 
    plans = &stripe.Plan{} 
    params := &stripe.PlanListParams{} 

    it := plan.List(params) 
    for it.Next() {   
     plans = it.Plan() 
    } 
    return 
} 

がGolangためのマニュアルに記載されている応答の例で行くと以外の言語の場合などPHP、Rubyのような他の言語とは多少異なります。

は、ここに私のコードです。 NETは計画の配列を返しますが、Goと.NETは単一の計画を返します。だから私はそれがapiのデフォルトの動作かいくつかのバグであるかどうかはわかりません。

何か助けていただければ幸いです。

ありがとうございます!私は構造インスタンスの代わりにインターフェイスを使用する必要があります

+0

'plans = it.Plan()'はあなたの 'plans'変数を上書きします。 'plans'は' Plan'sのようなものでなければなりません。 –

+0

はい、それは計画のスライスでなければなりません。実際に私は計画のスライスを作ってみたが、asignmentをやったが、api環境はこれをやらせてくれなかった。型の不一致に関するエラーを出しました。 –

+0

計画とエラーテキストの一部を入力してください。 –

答えて

0

はちょっと私は私の質問に答えを見つけた便利なヒントの@u_mulder

func GetAllPlans() (interface{}){ 
    var plans []interface{} 
    params := &stripe.PlanListParams{} 

    it := plan.List(params) 
    for it.Next() {   
     plans = append(plans, it.Plan()) 
    } 
    return plans 
} 

ありがとう!

関連する問題