param으로 name, ip를 요청받고 호스트 등록을 수행한다.
- HTTP Method: POST
- Params: name, ip
- Request URL: localhost:8080/api/host?name={name}&ip={ip}
등록된 전체 호스트의 이름, ip, 마지막 Alive 시간, 등록일, 수정일을 조회한다.
- HTTP Method: GET
- Request URL: localhost:8080/api/host
param을 이용하여 해당하는 호스트를 찾고 body로 요청된 정보로 호스트 정보를 수정한다.
- HTTP Method: PUT
- Params: name, ip
- RequestBody: "name":"수정 이름", "ip":"수정 ip"
- Request URL: localhost:8080/api/host?name={name}&ip={ip}
param을 이용해여 해당하는 호스트를 찾고 해당 호스트를 DB에서 삭제한다.
- HTTP Method: DELETE
- Params: name, ip
- Request URL: localhost:8080/api/host?name={name}&ip={ip}
RequestBody를 통해 요청한 호스트의 alive 상태를 InetAddress.isReachable() 메서드를 이용하여 조회한다.
조회된 결과는 호스트이름, 호스트ip, 마지막 Alive 시간, Alive 상태를 표시한다.
- HTTP Method: GET
- RequestBody: "name":"조회하고싶은 이름", "ip":"조회하고싶은 ip"
- Request URL: localhost:8080/api/host/alive
Enum(Criteria)를 param으로 받아 한 호스트 조회 or 모든 호스트 조회를 결정
한 호스트 조회일 경우 = (criteria == ONE) 조회할 호스트 body로 요청 받음
모든 호스트 조회일 경우 = (criteria == ALL)
전체 조회 시 100개의 호스트가 모두 Unreachable 상태여도 조회는 1초 이내에 응답해야하므로 InetAddress.isReachable()의 timeout을 10ms로 설정하여 100개 조회를 1초안에 수행할 수 있도록 한다.
- HTTP Method: GET
- Params: Criteria
- criteria가 ONE인 경우
- RequestBody: "name":"조회하고싶은 이름", "ip":"조회하고싶은 ip"
- criteria가 ALL인 경우
- RequestBody 없음
- Request URL: localhost:8080/api/host/alive/list?criteria={criteria}