これまでの記事では、getメソッドによるデータの取得や
postメソッドによるデータの送信を紹介してきました。
実はAngular2のHttpクライアントには他にも更新や削除といったHttpに関係する便利なメソッドが用意されています。
今日はAngular2のHttpメソッドについて網羅します。
メソッドの種類
公式ドキュメントのHttpのクラスを覗いてみましょう。
Angular2のHTTPクライアントのメソッドには、request
, get
, post
, put
, delete
, patch
, head
と、こんなにあるんですね。
ぼくはこのサポートにビックリしました。
さっそくひとつずつ見ていきましょう。
request(url: string | Request, options?: RequestOptionsArgs) : Observable
その名のとおり、リクエストを行います。
第1引数はURL文字列かRequest
オブジェクトのインスタンスである必要があります。
もしURLを指定した場合、第2引数にはRequestOption
オブジェクトを渡すことができ、オプションを指定することができます。
constructor(private http: Http) { }
requestData() {
return this.http.request('/api/path/to')
.map((res) => {
return res.json();
});
}
get(url: string, options?: RequestOptionsArgs) : Observable
get
によるリクエストを行います。
request
とほぼ同じですが、第1引数に指定できるのはURLのみ。
データを取得する際に使用します。
constructor(private http: Http) { }
getData() {
return this.http.get('/api/path/to')
.map((res) => {
return res.json();
});
}
post(url: string, body: string, options?: RequestOptionsArgs) : Observable
post
によるリクエストを行います。
第2引数には、送信するデータを指定します。
データの送信の際に使用します。
constructor(private http: Http) { }
postData(data) {
let body = JSON.stringify(data);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post('/api/path/to', body, options)
.map((res) => {
return res.json();
});
}
put(url: string, body: string, options?: RequestOptionsArgs) : Observable
put
によるリクエストを行います。
post
同様、第2引数に送信するデータを指定します。
サーバーのデータを置き換える際に使用します。
constructor(private http: Http) { }
changeData(data) {
let body = JSON.stringify(data);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.put('/api/path/to', body, options)
.map((res) => {
return res.json();
});
}
delete(url: string, options?: RequestOptionsArgs) : Observable
delete
によるリクエストを行います。
サーバーのデータを削除する際に使用します。
constructor(private http: Http) { }
deleteData() {
let headers = new Headers({ 'Content-Type': 'application/json' });
return this.http.delete('/api/path/to', headers)
.map((res) => {
return res.json();
});
}
patch(url: string, body: string, options?: RequestOptionsArgs) : Observable
patch
によるリクエストを行います。
post
同様、第2引数に送信するデータを指定します。
サーバーのデータの差分のみを置き換える際に使用します。
constructor(private http: Http) { }
updateData(data) {
let body = JSON.stringify(data);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.patch('/api/path/to', body, options)
.map((res) => {
return res.json();
});
}
head(url: string, options?: RequestOptionsArgs) : Observable
head
によるリクエストを行います。
HTTPヘッダを取得します。
constructor(private http: Http) { }
getHeader() {
return this.http.head('/api/path/to');
}
HTTPのメソッドってこんなにあるの?
「ん〜、なんか put
とか patch
とか出てきたけどよくわからない」、「HTTPってGETとPOSTだけじゃないの?」という人のためにHTTPメソッドについて説明しておきましょう。
put
や patch
は HTTP/1.1
というHTTPの仕様で定められているHTTPメソッドの種類なんです。
HTTPメソッドというのは、以下のような種類があります。
メソッド | 説明 |
---|---|
GET | 最も一般的に使用されるメソッドです。ブラウザはサーバに対してページの取得を要求します。 |
HEAD | GETと同じですが、ヘッダのみの情報を要求します。 |
POST | クライアントからデータを(名前と値)のセットで渡します。フォームに入力されたデータをサーバに送るときなどに使用します。 |
PUT | ファイルをサーバにアップロードする際に用いられます。 |
PATCH | PUTと同じですが、差分のみを置き換えるために使用します。 |
DELETE | 指定したリソースを削除することをサーバに要求します。 |
CONNECT | プロキシサーバを経由して SSL 通信する際などに使用します。 |
OPTIONS | サーバがサポートしているメソッドやオプションを調べる際に用います。 |
TRACE | HTTP要求がどのプロキシサーバを経由して送信されるかなど、HTTP の動作をトレースする際に用います。 |
Angular2ではこれらをサポートしているということなんです!
jQueryなどにはない機能なので、嬉しいですね!!