##API呼ぶ
以下4つのパートに分かれています。(〇〇編は適当につけましたゆるして)
API呼ぶ【準備編】
API呼ぶ【コア編】
API呼ぶ【ハンドリング編】
API呼ぶ【コール編】
##コール編
前回までで、Facadeを呼べばAPI関連の処理まとめてやってくれるように作れました
じゃあFacade呼ぼう
service.java
package service;
import exception.NantokaApiBadResultException;
import exception.NantokaApiUnknownException;
import facade.Facade;
import model.RequestBody;
import model.RequestDto;
import model.ResponseBody;
import model.ResponseDto;
public class Service {
/** APIFacade */
private static Facade facade = new Facade();
public static void main(String[] args) {
System.out.println(service(""));
}
public static String service(String str) {
// ロジック
RequestBody body = new RequestBody();
body.setId("28");
body.setName("なんとかさん");
body.setInfo("おなかすきました");
RequestDto request = new RequestDto();
request.setRequest(body);
try {
// API実行
ResponseDto response = facade.nantokaApiFacade(request);
ResponseBody responseBody = response.getBody();
return responseBody.getInfo() + responseBody.getComment();
} catch (NantokaApiUnknownException e) {
return e.getMessage();
} catch (NantokaApiBadResultException e) {
return e.getMessage();
}
}
}
エラーがシンプルでいいですね
FacadeでExceptionでくくったものと、処理結果がnullの場合を一つのエラーにまとめることができています
あとは結果が正常じゃない場合のエラーをとっています
結果の種類に応じて処理分けたかったら、Exceptionを増やして分岐させていけば対応できますね
##まとめ
★Client(コア層)はただたんにAPIたたくだけ
★Facade(ハンドリング層)でExceptionを好きなように吐かせる
★Service(コール層)で、分岐した時の処理を実装
なかなか綺麗なんじゃないでしょうか!