Прежде всего измените тип возвращаемого значения на Future<String>
Затем, если вы не используете какие-либо базы данных, а только некоторые orders
массив
router.post("postNewOrder") { req -> Future<String> in
return try req.content.decode(OrderRequest.self).map { orderRequest in
let newOrder = Order()
newOrder.latitude = orderRequest.latitude
newOrder.longitude = orderRequest.longitude
orders.append(newOrder)
return "\(newOrder.id)"
// if id is String then simply
// return newOrder.id
// if id is UUID then this way
// return newOrder.id.uuidString
}
}
Или если вы используете Fluent
тогда вам нужно сохранить новый заказ в базе данных
router.post("postNewOrder") { req -> Future<String> in
return try req.content.decode(OrderRequest.self).flatMap { orderRequest in
let newOrder = Order()
newOrder.latitude = orderRequest.latitude
newOrder.longitude = orderRequest.longitude
return newOrder.create(on: req).map { newOrder in
return "\(newOrder.requireID())"
// if id is String then simply
// return newOrder.id
// if id is UUID then this way
// return newOrder.requireID().uuidString
}
}
}
Вы также можете изменить тип возврата на Int
или UUID
в зависимости от того, какой тип вы используете для \Order.id
Также вы можете вернуть такую структуру
struct NewOrderResponse: Content {
let id: UUID // or String, Int, etc.
}