LoginSignup
0
0

More than 3 years have passed since last update.

API呼ぶ【ハンドリング編】

Last updated at Posted at 2019-12-26

API呼ぶ

以下4つのパートに分かれています。(〇〇編は適当につけましたゆるして)
API呼ぶ【準備編】
API呼ぶ【コア編】
API呼ぶ【ハンドリング編】
API呼ぶ【コール編】

ハンドリング編

コア層で実際にAPIをたたいたので、
今回の階層では出てきたエラーをハンドリングします

ここでいうエラーとは、Exceptionだけでなく
処理結果が不正である場合も含まれます

Facade.java
package facade;

import client.Client;
import exception.NantokaApiBadResultException;
import exception.NantokaApiUnknownException;
import model.RequestDto;
import model.ResponseDto;

public class Facade {

    /** 処理結果コード正常 */
    private static final String SUCCESS = "0";

    /** APIクライアント */
    private Client client = new Client();

    /**
     * APIを実行した結果を取得する
     * 
     * @param request リクエストDTO
     * @return レスポンスDTO
     * @throws NantokaApiUnknownException 通信エラーや結果が存在しなっかった場合
     * @throws NantokaApiBadResultException 処理結果不正の場合
     */
    public ResponseDto nantokaApiFacade(RequestDto request)
            throws NantokaApiUnknownException, NantokaApiBadResultException {

        ResponseDto response = new ResponseDto();

        try {
            response = client.nantokaApiClient(request);

        } catch (Exception e) {
            // 通信系エラーの場合
            throw new NantokaApiUnknownException(e.getMessage());
        }

        if (response == null) {
            throw new NantokaApiUnknownException("なんも返ってこなかったよ");
        }

        if (!SUCCESS.equals(response.getResultCode())) {
            throw new NantokaApiBadResultException("処理結果不正");
        }

        return response;
    }
}

通信エラー系のExceptionの場合も、処理結果がなぜかnullだった場合も、
同じくUnknownExceptionで返すようにしてみました

まぁこっちの気持ちとしてはなんかよくわかんないエラーなので、まとめたいよね
あと処理結果が不正の場合も、こっちからしたらエラーみたいなものなのでExceptionとして返しました

ここまでで、APIを呼ぶ機能は完成したと言えます
あとはこいつを呼び出すだけなので、次回実際に使ってみましょう

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0