I want to make unsigned transactions, sign and submit manually using wallet RPC. I know that transfer method does them directly, but I want to do it separately. However I can't find the way using wallet RPC. Please give me your insights.
I have been trying to accomplish exactly what you are describing for the past few weeks and I have come to the conclusion that this is not possible via RPC. You can only do this via the CLI. I am in the process of writing a RPC wrapper around the CLI so that I can make programmatic RPC calls that issue the proper CLI commands. A step-by-step guide around the CLI process can be found here: How do I use cold transaction signing? but you've probably seen this already. I am using this as a guide for the RPC wrapper.
The cold signing feature for the wallet RPC is currently being worked on in PR-3780.
According to wallet2::sign_tx method, the command [sign_transfer] only produces 'signed_monero_tx' file that is encrypted by secret_view_key. However the command [sign_transfer export] produces both 'signed_monero_tx_raw' that is NOT encrypted and <'signed_monero_tx' as well.
The RPC '/sendrawtransaction' seems asks for a raw transacation as the input, right? So can you try RPC /sendrawtransaction + 'signed_monero_tx_raw' to make it happen?