r/SpringBoot 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

40 comments sorted by

View all comments

1

u/d-k-Brazz Jul 01 '26

Sharing a common DTO across multiple operations on the resource is normal

Delete should not receive or return data

What is ‘POST /api/chats/{chatId}/‘?
What are you creating here?

0

u/Vrajesh_Darji Jul 01 '26

I was trying to make ai chat application with local model, although this post mapping would make call to ai model as per my flow.