orkestral / venom

Venom is a high-performance system developed with JavaScript to create a bot for WhatsApp, support for creating any interaction, such as customer service, media sending, sentence recognition based on artificial intelligence and all types of design architecture for WhatsApp.
https://orkestral.io
Apache License 2.0
6k stars 1.16k forks source link

Add HTTP API to Venom, wrap it into easy-to-use docker image. #488

Closed allburov closed 3 years ago

allburov commented 3 years ago

Is your feature request related to a problem? Please describe.

  1. There are plenty of developers who are not familiar very well with [Java|Type]Script and would love to use their favorite language to create a Whatsapp bot. I know that there is a lot of language-specific solutions, have found go-whatsapp, python-whatsapp, but haven't found a language agnostic WhatsApp HTTP API yet.
  2. The first experience with Venom must be easy as "Install and send a "hello" message", but right now it is not so easy. Openapi (swagger) API specification may help in this question too.

Describe the solution you'd like We can create an HTTP API for Venom and pack it into a small easy-to-use docker image.

Describe alternatives you've considered No alternatives. Even if I managed to create an HTTP API wrapper on top of Venom, I love using my other favorite language for "business logic".

Additional context I've created a Proof of Concept here - https://github.com/allburov/whatsapp-http-api API Specification here - https://allburov.github.io/whatsapp-http-api/

I can either contribute HTTP API into Venom repo or keep doing it as a separate project (but will appreciate a mention in the venom's readme).

antirek commented 3 years ago

Good idea, do it as separate project and also with docker )) For example, I embed venom in my project with my HTTP API for my tasks, do I need additional layer API?

allburov commented 3 years ago

You don't :) I am not talking about removing the ability to use Venom directly with JS, rather adding the HTTP layer to involve developers who are not familiar with JS that is available from the box.