method: REST방식
headers: 어떤 방식으로 보낼지
body:
- stringify(object): JSON
- 객체를 문자열로 변환(직렬화, Serializing)
- parse(JSON): object
- 문자열 데이터를 자바스크립트 객체로 변환(역직렬화, Deserializing)
fetch('http://localhost:8888/api/admin/login/', {
method: 'POST',
headers: {'Content-Type':'application/json'},
body: JSON.stringify({
"transaction_time":`${new Date()}`,
"resultCode":"ok",
"description":"정상",
"data":{
"userid":`${userid.value}`,
"userpw":`${userpw.value}`
}
}),
}).then(성공 시 실행).catch(에러나면 실행);
map: optional 객체에 저장된 값을 map() 내의 함수를 통해 반환하고, 변환값을 담은 optional 객체에 반환
orElseGet() = 비어있을 때만 실행
- optional 객체가 비어있지 않다면, 그대로 반환(아무 연산 수행X)
- optional 객체가 비어있다면, 기본값으로 제공할 공급자 함수를 지정(람다 표현식의 결과값 반환)
- 람다표현식: 메소드를 하나의 식으로 표현
(x, y) -> x < y ? x : y;
ex) userid와 userpw가 동일한 객체를 찾아 response메소드에 전송, 에러가 발생하지 않았을 경우 Header.OK메소드에 반환, Optional 객체가 비어있을 경우 Header.ERROR을 실행
return adminUserRepository.findByUseridAndUserpw(userid, userpw)
.map(users -> response(users)).map(Header::OK)
.orElseGet(()-> Header.ERROR("아이디 또는 비밀번호가 틀렸습니다.")); }