2016-09-01 18 views
0

Restivusを使用しているMeteor 1.4.1アプリでAPIエンドポイントを作成する際に問題があります。ここでRestivusがエンドポイントMeteor 1.4を設定していません

は私の現在のコードです:

import { Restivus } from 'meteor/nimble:restivus' 
import { Stripe } from '../stripe/stripe' 

export const loadApi = function(){ 
    console.log('loading api') 
    var Api = new Restivus({ 
     enableCors: true, 
     prettyJson:true 
    }) 

    Api.addRoute('/charge', { 
     post: { 
      action: function(){ 
       console.log('* Charging customer') 
       console.log(this) 
       console.log(this.bodyparams) 
       Stripe.chargeCustomer('foobar',9900) 
       return { 
        statusCode:204, 
        body:'foobar' 
       } 
      } 
     } 
    }) 
console.log(Api) 
} 

その後、私はserver/main.jsMeteor.startup関数にこのコードをロードします。 console.logが正しい_routes属性でRestivusオブジェクトを出力するため、APIが正しく定義されているようです。

ただし、投稿要求をhttp://localhost:3000/api/chargeに送信しても機能は実行されません(console.logは実行されません)。

私のコードで何が間違っているかについての考えはありますか?私はMeteor 1.4.1を使用しているので、バグかもしれません。

答えて

2

ルートから先頭のスラッシュを削除してください。「/ charge」ではなく「charge」です。

Relevant issue on GitHub.

+0

あなたは私の人生を保存しました、ありがとう! –

+0

@EricBurel私はまったく同じやり方をしていますが、私のAPIのGETとPOSTの応答を得ることはまだできません。 また、FlowRouterをダッシュ​​ボードルートに使用していて、APIルーティングには影響しません。 流星1.0でやったのと同じ方法で、その時にうまくいきました。流星1.4のためですか? – Shrinath

+0

@ Shrinathあなたは私たちにコードを示すことができますか? FlowRouterはこれと実際には関係ありません(SSRブランチを使用している場合を除いて) –

0

私はrestivusを使用していませんが、あなたのコードでは、の代わりにApi.addRoute('/api/charge'であるべきですか?

+0

こんにちは、無Restivusは、docに応じて '/ API /'プレフィックス自体を追加します。とにかく私は依然として '/ charge'を要求しようとしましたが、それはうまくいきませんでした。 –

+0

'/ charge'の代わりに'/api/charge'をリクエストするのはどうですか? – Khai

+0

はい '/ api/charge'が正しい終点ですが、私のコードで'/charge'の代わりに 'charge'として設定しなければなりませんでした(Restivusの文書の例は誤解を招いています)。対応するGithubの問題。 –

関連する問題