Es ist in die folgenden vier Teile unterteilt. (Verzeih mir die XX Ausgabe) API aufrufen [Vorbereitung] API aufrufen [Core] API aufrufen [Handling] API aufrufen [Aufruf]
Bereiten Sie zunächst das erforderliche Modell, die Json-Konvertierung und die selbst erstellte Ausnahme vor.
--Modell: Feld für Anfrage / Antwort --Json-Konvertierung: Konvertiert die Anforderung / Antwort für die API-Kommunikation in Json
Getter / Setter entfällt
Anfrage.java
package model;
public class RequestDto {
/**Außenrahmen*/
private RequestBody request;
}
Inhalt anfordern.java
package model;
public class RequestBody {
/** id */
private String id;
/**Name*/
private String name;
/**Inhalt*/
private String info;
}
Antwort.java
package model;
public class ResponseDto {
/**Verarbeitungsergebnis*/
private String resultCode;
/**Inhalt*/
private ResponseBody body;
}
Antwortinhalt.java
package model;
public class ResponseBody {
/**Ergebnisinhalt*/
private String info;
/**Kommentar*/
private String comment;
}
JsonUtil.java
package json;
import model.RequestDto;
import model.ResponseBody;
import model.RequestBody;
import model.ResponseDto;
public class JsonUtil {
/**
*Konvertieren Sie die Anforderung DTO in Json
*
* @param request request DTO
* @return Json Konvertierte Zeichenfolge
*/
public static String requestDtoToJson(RequestDto request) {
RequestBody body = request.getRequest();
String json =
"{" +
"\"request\": {" +
"\"id\": " + body.getId() + "," +
"\"name\": " + body.getName() + "," +
"\"info\": " + body.getInfo() +
"}" +
"}";
return json;
}
/**
*Konvertieren Sie die Antwort Json in DTO
*
* @param json Antwort Json
* @Konvertiertes DTO zurückgeben
*/
public static ResponseDto responseJsonToDto(String json) {
json =
"{" +
"\"resultCode\": 0," +
"\"body\": {" +
"\"info\":Das Ergebnis ist dies('ω')," +
"\"comment\":Es ist ein Kommentar('ω')" +
"}" +
"}";
ResponseBody body = new ResponseBody();
body.setInfo(getContent(json, "info"));
body.setComment(getContent(json, "comment"));
ResponseDto response = new ResponseDto();
response.setBody(body);
response.setResultCode(getContent(json, "resultCode"));
return response;
}
/**
*Extrahieren Sie Informationen aus der Json-Zeichenfolge
* <p>
*XXX Es ist nutzlos, wenn der Inhalt eine resultCode-Zeichenfolge oder ein Komma enthält, nicht wahr?
*
* @param json Json string
* @Parameterinhalt Auszuschneidender Parametername
* @Rückgabewert
*/
private static String getContent(String json, String content) {
return json.split("\"" + content + "\": ")[1].split(",")[0].split("}")[0].trim();
}
}
Die Antwort konzentriert sich auf die Benutzerfreundlichkeit, daher habe ich dieses Mal einen festen Wert erneut eingegeben. Nun, ich denke, es gibt eine Bibliothek, also ist das vielleicht nicht wirklich notwendig?
Basisausnahme.java
package exception;
public class NantokaApiException extends Exception{
private static final long serialVersionUID = 1L;
public NantokaApiException(String msg){
super(msg);
}
}
Ausnahme, die unerwartete Fehlersysteme zusammenfasst.java
package exception;
public class NantokaApiUnknownException extends NantokaApiException {
private static final long serialVersionUID = 1L;
public NantokaApiUnknownException(String msg){
super(msg);
}
}
Ausnahme, wenn ein API-Verarbeitungsergebnis vorliegt, es sich jedoch um ein Fehlerergebnis handelt.java
package exception;
public class NantokaApiBadResultException extends NantokaApiException {
private static final long serialVersionUID = 1L;
public NantokaApiBadResultException(String msg){
super(msg);
}
}
Es war also eine Vorbereitung Das nächste Mal werde ich diese Leute benutzen, um die API zu treffen
Recommended Posts