Защита данных в API?
Здравствуйте, существует проблема защиты данных клиентского приложения передаваемых серверу и обратно. Какая конкретно проблема?

как защитить данные?От кого?

Можно ли использовать HTTPSРазрешаю, можно.

и как это сделатьНа сервере ставите сертификат, в клиенте прописываете урл апи с https.

или же нужно создавать свои модули шифрования под сессии?Если приложение передает критические данные (например банковские транзакции или шпиёнские документы), можно использовать сквозное шифрование с какими-нибудь убердлинными ключами, однако перехват ключей при хэндшейке при атаке митм никто не отменял. Впрочем, как и в случае с хттпс.
Обычно два направления атак, от которых нужно защищаться:
1. защита от кражи передаваемых данных провайдером (любым, на пути следования пакетов, например публичный wifi)
2. защита от подмены передаваемых данных, так же провайдером
Для первой задачи нужно шифрование HTTPS, для второй хватит цифровой подписи но при использовании HTTPS это не актуально, так как подменить зашифрованные данные не получится

Клиент должен не игнорировать предупреждения о невалидности цифровой подписи (любят тут люди вместо корректной настройки последних версий openssl отключать контроль curl --insecure).

Есть еще защита от фальсификаций истории действий клиентом и сервисом (как доказать что ты отправил сервису сигнал на покупку и он его принял, а серверу доказать что ты отправлял этот сигнал), это реализуется цифровой подписью, сервер и клиент сначала обмениваются ключами шифрования (или просто солью для хешей) и каждое свое сообщение подписывают, если клиент будет хранить всю коммуникацию, эти цифровые подписи будут доказательством.