[JAVA] Appeler l'API [Préparation]

Appeler l'API

Il est divisé en quatre parties. (Pardonnez-moi pour la XX édition) Appeler l'API [Préparation] Appeler l'API [Core] Appeler l'API [Handling] Appeler l'API [Appeler]

Préparation

Tout d'abord, préparez le modèle nécessaire, la conversion Json et l'exception faite par vous-même.

--Modèle: Boîte pour demande / réponse

modèle

Getter / Setter est omis

demande.java


package model;

public class RequestDto {
	
	/**Cadre extérieur*/
	private RequestBody request;
}

Demande de contenu.java


package model;

public class RequestBody {
	
	/** id */
	private String id;
	/**Nom*/
	private String name;
	/**Contenu*/
	private String info;
}

réponse.java


package model;

public class ResponseDto {

	/**Résultat du traitement*/
	private String resultCode;
	/**Contenu*/
	private ResponseBody body;
}

Contenu de la réponse.java


package model;

public class ResponseBody {
	
	/**Contenu du résultat*/
	private String info;
	/**commentaire*/
	private String comment;
}

Conversion Json

JsonUtil.java


package json;

import model.RequestDto;
import model.ResponseBody;
import model.RequestBody;
import model.ResponseDto;

public class JsonUtil {
	
	/**
	 *Convertir le DTO de demande en Json
	 * 
	 * @demande de paramètre demande DTO
	 * @return Chaîne convertie Json
	 */
	public static String requestDtoToJson(RequestDto request) {
		
		RequestBody body = request.getRequest();
		
		String json = 
				"{" + 
					"\"request\": {" + 
						"\"id\": " + body.getId() + "," + 
						"\"name\": " + body.getName() + "," + 
						"\"info\": " + body.getInfo() + 
					"}" + 
				"}";
		
		return json;
	}
	
	/**
	 *Convertir la réponse Json en DTO
	 * 
	 * @param json réponse Json
	 * @retour DTO converti
	 */
	public static ResponseDto responseJsonToDto(String json) {
		
		json = 
				"{" +
					"\"resultCode\": 0," +
					"\"body\": {" +
						"\"info\":Le résultat est le suivant('ω')," +
						"\"comment\":C'est un commentaire('ω')" +
					"}" +
				"}";
		
		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;
	}
	
	/**
	 *Extraire les informations de la chaîne Json
	 * <p>
	 *XXX Il est inutile si le contenu contient une chaîne de caractères resultCode ou une virgule, n'est-ce pas?
	 * 
	 * @param json Json string
	 * @contenu du paramètre Nom du paramètre à découper
	 * @return Valeur de coupure
	 */
	private static String getContent(String json, String content) {
		return json.split("\"" + content + "\": ")[1].split(",")[0].split("}")[0].trim();
	}
}

La réponse est axée sur la facilité d'utilisation, donc cette fois j'ai ré-entré une valeur fixe. Eh bien, je pense qu'il y a une bibliothèque, alors peut-être que ce n'est pas vraiment nécessaire?

Exception faite par vous-même

Exception de base.java


package exception;

public class NantokaApiException extends Exception{

	private static final long serialVersionUID = 1L; 
	
	public NantokaApiException(String msg){
		super(msg);
	}
}

Exception qui résume les systèmes d'erreur inattendus.java


package exception;

public class NantokaApiUnknownException extends NantokaApiException {

	private static final long serialVersionUID = 1L; 
	
	public NantokaApiUnknownException(String msg){
		super(msg);
	}
}

Exception lorsqu'il y a un résultat de traitement API mais qu'il s'agit d'un résultat d'erreur.java


package exception;

public class NantokaApiBadResultException extends NantokaApiException {

	private static final long serialVersionUID = 1L; 
	
	public NantokaApiBadResultException(String msg){
		super(msg);
	}
}

C'était donc une préparation La prochaine fois, j'utiliserai ces gars pour accéder à l'API

Recommended Posts

Appeler l'API [Préparation]
Appeler l'API [Appel]
Appeler l'API [Handling]
Appeler l'API [Core Edition]
Appelez l'API Java de TensorFlow depuis Scala
API Rails
Appelez l'API Rest de GitHub à partir de l'API Socket de Java
Appeler l'API GitHub à partir de l'API Socket de Java, partie 2
Appelez l'API de notification Windows en Java