Как правильно построить логику API?
1. Не совсем корректная постановка вопроса, вы собираетесь передавать изображение в запросе? или как?.
Обычно делается так, если вы храните данные в б.д то вы сначала запрашиваете данные из бд, затем проверяете изображение по адресу и отправляете статус о нем на клиент, если все ок, а если возникла ошибка то результат ее обработки.
2. Что вы имеете в виде под словом "ресурс" ?
3. Да, т.к может возникнуть ситуация когда место на винте закончится а записи будут сохранятся в б.д.
Бинарные файлы, да, лучше отдельно посылать.
Особенно если они большие.