# 8 Webサービス
WebサービスではHTTPプロトコルの基礎の上にXMLまたはJSONを使って情報を交換することができるようになります。もし上海の天気予報を知りたかったり、チャイナペトロの株価やタオバオの商店にある商品の情報を知りたかったりすると、簡単なコードを少し書くことで、これらの情報を取得し、標準のインターフェースに開放することができます。ローカルで関数をコールし、値をひとつ返すのと同じようなものです。

Webサービスのバックエンドのキーはプラットフォームに依存しないことです。あなたはあなたのサービスをLinuxシステムで実行してもかまいませんし、他のWindowsのasp.netプログラムと交互に同様に一つのインターフェースを通じてFreeBSD上で実行されているJSPとなんの障害も無く通信することもできます。

現在主流となっているのは以下のいくつかのWebサービスです：REST、SOAP。

RESTリクエストはとても直感的です。なぜならRESTはHTTPプロトコルに基いた追加だからです。各リクエストはどれもHTTPリクエストです。異なるmethodに従って異なるロジックを処理します。多くのWeb開発者はいずれもHTTPプロトコルに詳しいので、RESTを学ぶことは比較的簡単でしょう。ですので我々は8.3節においてどのようにGo言語でRESTメソッドを実装するか詳細にご紹介します。

SOAPはW3Cのネットワークを超えた情報伝達とリモートコンピュータの関数コール方面の標準のひとつです。しかしSOAPはとても複雑で、完全な規則は非常に長くなります。また内容はいまでも増加しています。Go言語は簡単さで有名ですので、SOAPのような複雑なものはここではご紹介しません。Go言語は生まれながらにしてとても良い、開発に便利なRPCメカニズムを提供しています。8.4節ではどのようにしてGo言語を使ってRPCを実装するか詳しくご紹介するつもりです。

Go言語は21世紀のC言語です。性能と簡単さを追求するため、8.1節ではどのようにしてSocketプログラミングを行うかご説明します。多くのゲームサービスはどれもSocketを採用してサーバをプログラムしています。HTTPプロトコルは比較的性能を必要とするものですので、Go言語がどのようにしてSocketプログラミングを行うのか見てみることにしましょう。現在HTML5の発展にしたがって、webSocketsも多くのゲーム会社が引き続き開発する手段の一つとなりつつあります。8.2節ではGo言語でどのようにしてwebSocketsのコードをプログラムするかご説明します。

## 目次
   ![](images/navi8.png?raw=true)

## links
   * [目次](<preface.md>)
   * 次へ: [第七章概要](<07.5.md>)
   * 前へ: [Socketプログラミング](<08.1.md>)
