Отправка объекта из Angular8 в Spring Boot - PullRequest
1 голос
/ 01 февраля 2020

Я довольно новичок в веб-разработке и признаю, что, следуя нескольким руководствам в Интернете, я все еще немного запутался в некоторых базовых c концепциях. У меня есть форма Angular8 , которая работает довольно хорошо: я вставляю данные и нажимаю «Отправить».

onSubmit() {
    console.log(this.model);
    this.submitted = true;
  }

И выводит на консоль данные формы (я следовал это официальное руководство для справки).

Вот содержание моего search-message.ts (класс model):

export class SearchMessage {

  constructor(
    public id: number,
    public inputText: string,
    public targetSite: string,
    public searchLimit: number,
    public details: boolean
  ) { }
}

Теперь я пытаюсь написать Spring Boot приложение, которое получит объект model, и я просто выведу на печать те же данные. Никакая база данных не должна быть вовлечена в эту процедуру (и именно поэтому я запутался: все руководства, которые я нахожу в Интернете, касаются подключения БД на сервере к представлению в Angular). Как мне это сделать?

1 Ответ

1 голос
/ 01 февраля 2020

В Spring Boot вы должны определить класс контроллера, который предоставляет конечную точку, которую вы будете вызывать из вашего приложения Angular.

@RestController
@RequestMapping("/path")
public CustomController {
    @PostMapping("message")
    public ResponseEntity<?> addModel(@RequestBody SearchMessage message) {

        // do what you need with the element (ex. write to a db, print data..)
        System.out.println("Data received: " + message.toString());

        return ResponseEntity.ok().build();

    }
}

Где SearchMessage должен выглядеть примерно так:

class SearchMessage {
    private int id; 
    private String inputText;
    private String targetSite;
    private int searchLimit;
    private boolean details;

    // getters and setters
}

И, предполагая, что внутреннее приложение работает на порту 8081, вы можете сделать сообщение на конечную точку, например:

http://localhost:8081/your-app-context-path/path/message

, где тело должно быть совместимым с классом SearchMessage, который вы определили в параметре метода message.
Обратите внимание, что вы можете определить путь к контексту приложения, добавив это свойство в файл application.properties:

server.servlet.context-path=/myCoolApp

Полный рабочий пример можно найти в этом примере Spring . См. Также эту более полную статью .
Дайте мне знать, если вам нужно больше подробностей или объяснений.

...