Итак, передо мной была поставлена задача написать небольшое приложение "Аукционные лоты". Хочу кратенько пройтись по каждому из пунктов и его реализации.
- Получение списка лотов. У каждого лота есть ID, имя человека (name), который выставил цену, цена (price) и статус (true или false в завимисимости от того, закрыт лот или открыт). Соответственно, [
curl -i localhost:8080/get_all_lots
], мы получаем список лотов в формате JSON-стуктуры. - Создание нового лота. [
curl -X POST -d "{\"name\": \"Me\", \"price\": \"$400\"}" http://localhost:8080/new
]. Передаём имя и цену. ID автоинкерементируется в БД, поэтому передавать не нужно. - Выставление текущему лоту новой цены. [
curl -X POST -d "{\"id\": 2, \"price\": \"$400\", \"name\": \"Kolya\"}" http://localhost:8080/update
]. Здесь важно передать ID лота, чтобы мы нашли его в базе. Одновременно с этим во вспомогательной базе создаётся запись о том, кто и во сколько изменил цену (да, во вспомогательной таблице есть ещё и немножко кривое (не указал часовой пояс) время и дата). - Закрытие лота. [
curl -X POST -d "{\"id\": 1}" http://localhost:8080/close
]. Закрываем лот по его ID. При закрытии в статусе лота выставляется false. ВНИМАНИЕ: закрытые посты не отображаются при вызове списка лотов (нам закрытые не нужны, я думаю). - Получение списка изменений по определённому лоту. [
curl -X POST -d "{\"id\": 2}" http://localhost:8080/history
]. Получаем историю изменения цен по ID лота.