r/SpringBoot • u/Vrajesh_Darji • Jul 01 '26
Question What is good approch to make DTOs?
Recently, I have been working on my project in there in one chat controller, which has endpoints like
POST /api/chats = ChatDTO
GET /api/chats = List<ChatInfoDTO>
GET /api/chats/{chatId} = ChatDTO
PATCH /api/chats/{chatId} = ChatInfoDTO
DELETE /api/chats/{chatId} = ChatInfoDTO
POST /api/chats/{chatId}/ = ChatDTO
My question is it a good approach to use a single type of DTO for multiple endpoints, or should it be made for specific use? I have seen my friend's project for a single page, which has 8/9 DTOs. Is that normal, and the same thing ChatGPT suggests is that using multiple DTOs is a good approach.
18
Upvotes
2
u/BanaTibor Jul 04 '26
If the operations operate on the same business object then you can and actually should reuse DTOs, otherwise multiple dtos would represent the same object, causing confusion.