Я хочу сохранить данные электронной почты в базе данных с помощью вызова REST API - PullRequest
0 голосов
/ 31 августа 2018
@RequestMapping(value = "/createXXX", method = RequestMethod.POST ,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public @ResponseBody ResponseEntity<String> createXXX(@Context HttpServletRequest request, HttpSession httpSession, 
            @Valid @RequestParam("json") String jsonString,@Valid @RequestPart("file") MultipartFile[] files)  {

        ObjectMapper mapper = new ObjectMapper();
        AModel aModel = null;
        try {
            aModel = mapper.readValue(jsonString, AModel.class);
        } catch (IOException e) {

        }

Кто-то еще использует API REST, опубликованный нами, и тип контента multipart / form-data, потребители API отправят строку JSON и некоторые вложения файлов, строка JSON будет выглядеть как

{
    "mail":"xxx.com",
    "mailSubject":"Hi how are you",
    "mailBody":"here we can have anything rich text, html etc which we are generally writing while sending the mails"
}

У меня проблема с использованием этого mailBody, потому что это редко будет нормальной строкой, поэтому анализатор JSON выдает ошибку.

error: {
    "errorCode": 400,
    "status": "BAD_REQUEST",
    "message": "ERR-0001: Required parameters are blank or invalid.",
    "timestamp": "29-08-2018 07:06:17",
    "Errors": [
        {
            "field": "",
            "rejectedValue": "json",
            "message": "Illegal unquoted character ((CTRL-CHAR, code 13)): has to be escaped using backslash to be included in string value\n at [Source: java.io.StringReader@74be551a; line: I, column: 134]"
        }
    ]
}

поэтому я хочу изменить структуру API, чтобы мы могли использовать тело почты внутри строки json или вне строки json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...