mixi APIのリクエストに必要な情報を保持するクラス [詳細]
#import <MixiRequest.h>
Public メソッド | |
| (id) | - initWithEndpoint: |
| エンドポイントを指定してリクエストを初期化 | |
| (id) | - initWithMethod:endpoint: |
| HTTPメソッドとエンドポイントを指定してリクエストを初期化 | |
| (id) | - initWithMethod:endpoint:body: |
| HTTPメソッドとエンドポイントとリクエストボディを指定してリクエストを初期化 | |
| (id) | - initWithEndpoint:params: |
| エンドポイントとパラメーターを指定してリクエストを初期化 | |
| (id) | - initWithEndpoint:body:params: |
| エンドポイントとリクエストボディとパラメーターを指定してリクエストを初期化 | |
| (id) | - initWithMethod:endpoint:params: |
| HTTPメソッドとエンドポイントとパラメーターを指定してリクエストを初期化 | |
| (id) | - initWithMethod:endpoint:body:params: |
| [指定イニシャライザ] HTTPメソッドとエンドポイントとリクエストボディとパラメーターを指定してリクエストを初期化 | |
| (void) | - setParamsAndKeys: |
| パラメーターを設定 | |
| (void) | - setParam:forKey: |
| パラメーターを設定 | |
| (void) | - clearParams |
| パラメーターをクリア | |
| (void) | - addAttachment:forKey: |
| 添付ファイルを追加 | |
| (NSURLRequest *) | - constructURLRequest: |
| 自身の情報からNSURLConnectionで実際に送信するためのURLリクエストを作成 | |
Static Public メソッド | |
| (id) | + requestWithEndpoint: |
| エンドポイントを指定してGETリクエストを生成 | |
| (id) | + requestWithMethod:endpoint: |
| HTTPメソッドとエンドポイントを指定してリクエストを生成 | |
| (id) | + requestWithMethod:endpoint:body: |
| HTTPメソッドとエンドポイントとリクエストボディを指定してリクエストを生成 | |
| (id) | + requestWithEndpoint:params: |
| エンドポイントとパラメーターを指定してGETリクエストを生成 | |
| (id) | + getRequestWithEndpoint:params: |
| エンドポイントとパラメーターを指定してGETリクエストを生成 | |
| (id) | + postRequestWithEndpoint: |
| エンドポイントを指定してPOSTリクエストを生成 | |
| (id) | + postRequestWithEndpoint:params: |
| エンドポイントとパラメーターを指定してPOSTリクエストを生成 | |
| (id) | + postRequestWithEndpoint:body: |
| エンドポイントとリクエストボディを指定してPOSTリクエストを生成 | |
| (id) | + postRequestWithEndpoint:body:params: |
| エンドポイントとリクエストボディとパラメーターを指定してPOSTリクエストを生成 | |
| (id) | + putRequestWithEndpoint:params: |
| エンドポイントとパラメーターを指定してPUTリクエストを生成 | |
| (id) | + putRequestWithEndpoint:body: |
| エンドポイントとリクエストボディを指定してPUTリクエストを生成 | |
| (id) | + putRequestWithEndpoint:body:params: |
| エンドポイントとリクエストボディとパラメーターを指定してPUTリクエストを生成 | |
| (id) | + deleteRequestWithEndpoint: |
| エンドポイントを指定してDELETEリクエストを生成 | |
| (id) | + deleteRequestWithEndpoint:params: |
| エンドポイントとパラメーターを指定してDELETEリクエストを生成 | |
| (id) | + deleteRequestWithEndpoint:body:params: |
| エンドポイントとリクエストボディとパラメーターを指定してDELETEリクエストを生成 | |
| (id) | + requestWithEndpoint:paramsAndKeys: |
| エンドポイントとパラメーターを指定してGETリクエストを生成 | |
| (id) | + getRequestWithEndpoint:paramsAndKeys: |
| エンドポイントとパラメーターを指定してGETリクエストを生成 | |
| (id) | + postRequestWithEndpoint:paramsAndKeys: |
| エンドポイントとパラメーターを指定してPOSTリクエストを生成 | |
| (id) | + postRequestWithEndpoint:body:paramsAndKeys: |
| エンドポイントとリクエストボディとパラメーターを指定してPOSTリクエストを生成 | |
| (id) | + putRequestWithEndpoint:paramsAndKeys: |
| エンドポイントとパラメーターを指定してPUTリクエストを生成 | |
| (id) | + putRequestWithEndpoint:body:paramsAndKeys: |
| エンドポイントとリクエストボディとパラメーターを指定してPUTリクエストを生成 | |
| (id) | + deleteRequestWithEndpoint:paramsAndKeys: |
| エンドポイントとパラメーターを指定してDELETEリクエストを生成 | |
| (id) | + deleteRequestWithEndpoint:body:paramsAndKeys: |
| エンドポイントとリクエストボディとパラメーターを指定してDELETEリクエストを生成 | |
| (id) | + requestWithMethod:endpoint:params: |
| HTTPメソッドとエンドポイントとパラメーターを指定してリクエストを生成 | |
| (id) | + requestWithMethod:endpoint:body:params: |
| HTTPメソッドとエンドポイントとリクエストボディとパラメーターを指定してリクエストを生成 | |
| (void) | + setDefaultRequestTimeout: |
| デフォルトタイムアウトを設定 | |
| (void) | + setDefaultRequestCachePolicy: |
| デフォルトキャッシュポリシーを設定 | |
| (void) | + setDefaultImageTypeJPEG |
| デフォルトの画像タイプをJPEGに設定 | |
| (void) | + setDefaultImageTypePNG |
| デフォルトの画像タイプをPNGに設定 | |
| (void) | + setDefaultCompressionQuality: |
| JPEGを使用した際のデフォルトの圧縮率を設定 | |
| (NSString *) | + userAgent |
| ユーザーエージェントを取得 | |
プロパティ | |
| NSString * | endpoint |
| NSString * | endpointBaseUrl |
| NSObject * | body |
| NSData * | bodyData |
| NSMutableDictionary * | params |
| NSMutableDictionary * | attachments |
| NSString * | httpMethod |
| NSTimeInterval | requestTimeout |
| NSURLRequestCachePolicy | cachePolicy |
| NSString * | imageType |
| float | compressionQuality |
| BOOL | openMixiAppToAuthorizeIfNeeded |
mixi APIのリクエストに必要な情報を保持するクラス
本クラスのインスタンスはAPI実行に関する以下の情報を保持します。
APIが必要とするパラメーターの値は大きく分けて文字列・JSON・画像の3種類あり、本SDKではそれらをそれぞれNSString、NSDictionary、UIImageで指定します。 基本的なリクエストの生成は次のようになります。
NSString *path = [[NSBundle mainBundle] pathForResource:"yoichiro" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:path];
MixiRequest *request = [MixiRequest postRequestWithEndpoint:"/path/to/api"
paramsAndKeys:@"value1", @"key1",
@"value2", @"key2",
image, @"key3", nil];
JSON形式で値を指定する場合は次のようになります。
NSMutableDictionary *json = [NSMutableDictionary dictionary];
[diary setValue:"value1" forKey:@"key1"];
[diary setValue:@"value2" forKey:@"key2"];
NSMutableDictionary *subJson = [NSMutableDictionary dictionary];
[subJson setValue:"value31" forKey:@"key31"];
[json setValue:subJson forKey:@"key3"]; MixiRequest *request = [MixiRequest postRequestWithEndpoint:"/path/to/api"
paramsAndKeys:json, @"json", nil];
上記の場合リクエストボディに設定されるJSONは次のようになります。
{
"key1":"value1",
"key2":"value2",
"key3":{
"key31":"value31"
}
}
なお、JSONはリクエストボディを占有してしまうため、画像以外の値を持つ唯一のパラメータでなければいけません。つまり次のような指定はできません。
// 以下のリクエストではjson変数はJSONとしては扱われません。
MixiRequest *request = [MixiRequest postRequestWithEndpoint:"/path/to/api"
paramsAndKeys:json, @"json",
@"wrong_value", @"wrong_key", nil];
パラメータをNSDictionaryオブジェクトでまとめて指定することもできます。パラメータの種類を動的に変更する場合はこちらを使用するといいでしょう。
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setObject:"value1" forKey:@"key1"];
[params setObject:@"value2" forKey:@"key2"];
MixiRequest *request = [MixiRequest postRequestWithEndpoint:@"/path/to/api" params:params];
リクエストを作成してからパラメータを追加しても構いません。
MixiRequest *request = [MixiRequest postRequestWithEndpoint:"/path/to/api"];
[request setParam:@"value1" forKey:@"key1"];
[request setParam:@"value2" forKey:@"key2"];
HTTPリクエストのボディを直接指定することもできます。 リクエストボディに直接画像データを設定することを要求するAPIがありますが、paramsの値としてUIImageオブジェクトを与えた場合はマルチパートデータとして送信されてしまいます。 そのような場合に、次のコンストラクタが利用できます。
MixiRequest *request = [MixiRequest postRequestWithEndpoint:"/path/to/api" body:image];
添付される画像はデフォルトではJPEG形式ですが、次のメソッドを呼び出しておくことでデフォルトでPNG形式を使うこともできます。
[MixiRequest setDefaultImageTypePNG];
リクエストごとに画像の形式を変更する場合はimageTypeプロパティを使用します。
request.imageType = "png";
なお、一つのリクエストに形式の異なる画像を混在させることはできません。
| - (void) addAttachment: | (UIImage*) | image | |
| forKey: | (NSString*) | key | |
添付ファイルを追加
| image | 画像 |
| key | キー |
| - (NSURLRequest *) constructURLRequest: | (Mixi*) | mixi |
自身の情報からNSURLConnectionで実際に送信するためのURLリクエストを作成
| mixi | mixiオブジェクト |
| + (id) deleteRequestWithEndpoint: | (NSString*) | endpoint |
エンドポイントを指定してDELETEリクエストを生成
| endpoint | APIエンドポイント |
| + (id) deleteRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| params: | (NSDictionary*) | params | |
エンドポイントとリクエストボディとパラメーターを指定してDELETEリクエストを生成
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) deleteRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとリクエストボディとパラメーターを指定してDELETEリクエストを生成
| endpoint | APIエンドポイント |
| リクエストボディ | |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (id) deleteRequestWithEndpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
エンドポイントとパラメーターを指定してDELETEリクエストを生成
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) deleteRequestWithEndpoint: | (NSString*) | endpoint | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとパラメーターを指定してDELETEリクエストを生成
| endpoint | APIエンドポイント |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (id) getRequestWithEndpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
エンドポイントとパラメーターを指定してGETリクエストを生成
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) getRequestWithEndpoint: | (NSString*) | endpoint | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとパラメーターを指定してGETリクエストを生成
| endpoint | APIエンドポイント |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| - (id) initWithEndpoint: | (NSString*) | endpoint |
エンドポイントを指定してリクエストを初期化
| endpoint | APIエンドポイント |
| - (id) initWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| params: | (NSDictionary*) | params | |
エンドポイントとリクエストボディとパラメーターを指定してリクエストを初期化
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| - (id) initWithEndpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
エンドポイントとパラメーターを指定してリクエストを初期化
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| - (id) initWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
HTTPメソッドとエンドポイントを指定してリクエストを初期化
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| - (id) initWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
HTTPメソッドとエンドポイントとリクエストボディを指定してリクエストを初期化
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| - (id) initWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| params: | (NSDictionary*) | params | |
[指定イニシャライザ] HTTPメソッドとエンドポイントとリクエストボディとパラメーターを指定してリクエストを初期化
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| - (id) initWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
HTTPメソッドとエンドポイントとパラメーターを指定してリクエストを初期化
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) postRequestWithEndpoint: | (NSString*) | endpoint |
エンドポイントを指定してPOSTリクエストを生成
| endpoint | APIエンドポイント |
| + (id) postRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
エンドポイントとリクエストボディを指定してPOSTリクエストを生成
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| + (id) postRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| params: | (NSDictionary*) | params | |
エンドポイントとリクエストボディとパラメーターを指定してPOSTリクエストを生成
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) postRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとリクエストボディとパラメーターを指定してPOSTリクエストを生成
| endpoint | APIエンドポイント |
| リクエストボディ | |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (id) postRequestWithEndpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
エンドポイントとパラメーターを指定してPOSTリクエストを生成
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) postRequestWithEndpoint: | (NSString*) | endpoint | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとパラメーターを指定してPOSTリクエストを生成
| endpoint | APIエンドポイント |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (id) putRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
エンドポイントとリクエストボディを指定してPUTリクエストを生成
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| + (id) putRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| params: | (NSDictionary*) | params | |
エンドポイントとリクエストボディとパラメーターを指定してPUTリクエストを生成
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) putRequestWithEndpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとリクエストボディとパラメーターを指定してPUTリクエストを生成
| endpoint | APIエンドポイント |
| リクエストボディ | |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (id) putRequestWithEndpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
エンドポイントとパラメーターを指定してPUTリクエストを生成
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) putRequestWithEndpoint: | (NSString*) | endpoint | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとパラメーターを指定してPUTリクエストを生成
| endpoint | APIエンドポイント |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (id) requestWithEndpoint: | (NSString*) | endpoint |
エンドポイントを指定してGETリクエストを生成
| endpoint | APIエンドポイント |
| + (id) requestWithEndpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
エンドポイントとパラメーターを指定してGETリクエストを生成
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) requestWithEndpoint: | (NSString*) | endpoint | |
| paramsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
エンドポイントとパラメーターを指定してGETリクエストを生成
| endpoint | APIエンドポイント |
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (id) requestWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
HTTPメソッドとエンドポイントを指定してリクエストを生成
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| + (id) requestWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
HTTPメソッドとエンドポイントとリクエストボディを指定してリクエストを生成
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| + (id) requestWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
| body: | (NSObject*) | body | |
| params: | (NSDictionary*) | params | |
HTTPメソッドとエンドポイントとリクエストボディとパラメーターを指定してリクエストを生成
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| body | リクエストボディ |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (id) requestWithMethod: | (NSString*) | httpMethod | |
| endpoint: | (NSString*) | endpoint | |
| params: | (NSDictionary*) | params | |
HTTPメソッドとエンドポイントとパラメーターを指定してリクエストを生成
| httpMethod | HTTPメソッド |
| endpoint | APIエンドポイント |
| params | パラメータ。値の型に応じて次のように送り分けられます。
|
| + (void) setDefaultCompressionQuality: | (float) | quality |
JPEGを使用した際のデフォルトの圧縮率を設定
| quality | 圧縮率 |
| + (void) setDefaultImageTypeJPEG |
デフォルトの画像タイプをJPEGに設定
全リクエストでJPEGフォーマットを利用する場合に使用
| + (void) setDefaultImageTypePNG |
デフォルトの画像タイプをPNGに設定
全リクエストでPNGフォーマットを利用する場合に使用
| + (void) setDefaultRequestCachePolicy: | (NSURLRequestCachePolicy) | cachePolicy |
デフォルトキャッシュポリシーを設定
| cachePolicy | キャッシュポリシー |
| + (void) setDefaultRequestTimeout: | (NSTimeInterval) | interval |
デフォルトタイムアウトを設定
| interval | タイムアウト秒数 |
| - (void) setParam: | (NSObject*) | value | |
| forKey: | (NSString*) | key | |
パラメーターを設定
| value | 値の型に応じて次のように送り分けられます。
|
| key | キー |
| - (void) setParamsAndKeys: | (NSObject*) | paramsKeys | |
| , | ... | ||
パラメーターを設定
| paramsKeys | 可変長パラメータ。偶数個指定すること。また最期の引数はnilにすること。値の型に応じて次のように送り分けられます。
|
| + (NSString *) userAgent |
ユーザーエージェントを取得
1.7.4