diff --git a/react-springboot/book/book-backend/src/main/java/com/example/book/web/BookController.java b/react-springboot/book/book-backend/src/main/java/com/example/book/web/BookController.java index 9e77156f..cf136206 100644 --- a/react-springboot/book/book-backend/src/main/java/com/example/book/web/BookController.java +++ b/react-springboot/book/book-backend/src/main/java/com/example/book/web/BookController.java @@ -19,6 +19,7 @@ public class BookController { return new ResponseEntity<>(bookService.모두가져오기(), HttpStatus.OK); } + @CrossOrigin @PostMapping ("/book") public ResponseEntity save(@RequestBody Book book) { return new ResponseEntity<>(bookService.저장하기(book), HttpStatus.CREATED); diff --git a/react-springboot/book/book-frontend/src/pages/book/SaveForm.js b/react-springboot/book/book-frontend/src/pages/book/SaveForm.js index e288b880..c32c73bf 100644 --- a/react-springboot/book/book-frontend/src/pages/book/SaveForm.js +++ b/react-springboot/book/book-frontend/src/pages/book/SaveForm.js @@ -1,9 +1,68 @@ -import React from 'react'; +import React, { useState } from 'react'; +import { Button, Form } from 'react-bootstrap'; + +const SaveForm = (props) => { + const [book, setBook] = useState({ + title: '', + author: '', + }); + + const changeValue = (e) => { + setBook({ + ...book, + [e.target.name]: e.target.value, + }); + }; + + const submitBook = (e) => { + e.preventDefault(); + fetch('http://localhost:8080/book', { + method: 'post', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + }, + body: JSON.stringify(book), + }) + .then((res) => { + return res.status === 201 ? res.json() : null; + }) + .then((res) => { + res !== null ? props.history.push('/') : alert('책 등록 실패'); + }) + .catch((error) => { + console.log(error); + }); + }; -const SaveForm = () => { return (
-

책 등록하기

+
+ + Title + + + + + + Author + + + + + +
); };