Error Handling for API access

To identify the cause of an error when accessing the API, the Mobage Open Platform RESTful API returns error information in JSON format in addition to the response code.

HTTP Response Status Codes

The Mobage Open Platform RESTful API handles the following HTTP status codes.

Response code

Response message

Description

200

OK

Processing was successful

201

Created

New resource was created successfully

202

Accepted

Request was accepted normally

400

Bad Request

Request data contains an invalid value

401

Unauthorized

OAuth authorization failed

404

Not Found

Resource does not exist

405

Method Not Allowed

Method is not allowed

500

Internal Server Error

Processing failed because of an API problem

503

Service Unavailable

API cannot be accessed temporarily

 
For more information, please see OpenSocial RESTful Protocol Specification v0.9 - 13. HTTP Status Codes .

HTTP Response when an Error Occurs

When an error occurs, error information is returned in JSON format. See the examples below.

The TextData API is used to get a list of TextDataGroup collections in Proxy mode

Request

GET http://sb.sp.app.mbga.jp/api/restful/v1/textdata/@app/@all?format=json
Accept-Encoding: gzip
Authorization: OAuth realm="", oauth_consumer_key="XXXXXXXXXX", oauth_nonce="YYYYYYYY", oauth_signature="ZZZZZZZZZ", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1262688790", oauth_token="AAAAAAAAA", oauth_version="1.0", xoauth_requestor_id="100"
User-Agent: OAuth::Lite::Consumer/1.22

Response

By looking at the Message value, it is apparent that this API access cannot be performed in Proxy mode.

405 Method Not Allowed
Connection: close
Date: Tue, 05 Jan 2010 10:53:10 GMT
Server: lighttpd/1.4.22
Content-Length: 61
Content-Type: application/json
Client-Date: Tue, 05 Jan 2010 10:53:10 GMT

{"Error": {"Message":" Proxy Request is not allowed this API"}}

When Access is Attempted with an Invalid consumer_key

Request

GET http://sb.sp.app.mbga.jp/api/restful/v1/people/@me/@self?format=json
Accept-Encoding: gzip
Authorization: OAuth realm="", oauth_consumer_key="BadConsumerKey", oauth_nonce="XXXXXXX", oauth_signature="YYYYYYYY", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1262689167", oauth_token="ZZZZZZZZZZZ", oauth_version="1.0", xoauth_requestor_id="100"
User-Agent: OAuth::Lite::Consumer/1.22

Response

When the id and consumer_key pair of a given application do not match, the following gives an example of the error message that is returned.

401 Unauthorized
Connection: close
Date: Tue, 05 Jan 2010 11:03:58 GMT
Server: lighttpd/1.4.22
Content-Length: 133
Content-Type: application/json
Client-Date: Tue, 05 Jan 2010 11:03:58 GMT

{"Error": {"Message":" wrong consumer infomation ( no exists consumer info [app_id: 12300000, consumer_key: BadConsumerKey] )"}}

Notes

  • Use only HTTP status codes when handling errors in a program. Error messages that are returned in JSON format may change without prior notice. Use these error messages to resolve problems during development.

Reference Links

OpenSocial RESTful Protocol Specification v0.9 - 13. HTTP Status Codes

Revision History

  • 12/11/2012
    • Initial release

PREVIOUS

About User Grade

NEXT

Performance Guidelines for HTTP Request