ローカルサーバで開発中にグローバルサーバが必要になるケース

外部APIを利用してリダイレクトを受け付けるタイプの開発ではグローバルなサーバが必要になる

その場合にはリダイレクト先を外部のサーバに設定して検証する

windowsローカルサーバで開発をしている。

windowsのhostsファイルでサブドメインのワイルドカードが現在においても利用できないという不便さのほかに、外部のapiを利用する際にリダイレクト先として外部のサーバがローカルサーバにリクエストできないという問題がある。

具体的には、paypalのapiを利用する際に、

  • PDT
  • IPN

という2種類のトランザクション確認用の通知サービスがあるのだが、ローカルサーバのみで開発をしているとその通知を受け付けることができない。理由は、開発環境としてのローカルサーバをグローバルから名前解決できる状態にしていないという理由になるので、解決方法としては、

  • ローカルサーバをグローバルにする
  • 外部apiサーバからのレスポンス先等を外部のサーバにする

いずれかの方法で対応することができる。

paypal apiの場合は、決済後のリダイレクト先と決済通知の送信先をローカルサーバではなく、外部のホスティングサーバなどに設定することで開発を進めることが可能。

外部のサーバは仕様上の制約が存在する場合がある

Google App Engineというクラウド系のサーバがあり、paypalのリダイレクト先として一時的に利用しようとしたが、PHPのCurlエクステンションが備わっておらず、paypalのインテグレーションウィザードでダウンロードしたコードが動かないという事例があった。

Curlではなくfile_get_contentsで代用するという解決方法があるようなのだが、別のホスティングサービスを利用することでpaypalの開発を継続することにした。

この例は制約の一例で、制約というよりも知っておきたいノウハウ的な側面がある。

ローカルサーバはなんでもできるが、なんでもできることが当たり前ではないのがグローバルネットワークといったところ。

ちなみに、PHPのCurlが利用できて、使い勝手が問題のない無料のホスティングサービスが000webhostというサービス。

http://www.000webhost.com/

実際には他にもCurlが利用できて無料のホスティングサービスは存在すると思うが、外部のサーバが必要になったときに利用しているのは000webhostというサービス。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ローカルサーバで開発中にグローバルサーバが必要になるケースの記事にコメントを投稿