postmanlabs / postman-app-support

Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster.
https://www.postman.com
5.78k stars 837 forks source link

[Feature Request] - Add CoAP protocol support #7134

Open AndreMaz opened 5 years ago

AndreMaz commented 5 years ago

This is a feature request to add support for CoAP protocol. CoAP can be seen as a lightweight version of HTTP that is specially designed for Internet of Things. Detail Since the Web of Things is becoming the thing (pun intended) (examples: W3C, Mozilla IoT, OCF) where even constrained devices expose their data though REST APIs it becomes necessary to have a reliable testing tool. However, to this date, there is none. So adding CoAP support would be a really great feature.

Who will benefit from this feature? Pretty much everyone who is working on IoT and wants to test their CoAP-based REST APIs.

How Postman will benefit from this feature? CoAP support will expand the Postman's user base. For example, the OCF, a consortium supported by major IT players, rely heavily on CoAP protocol. Therefore, everyone who is working with OCF's data model would gladly use Postman.

Changes affected by this feature All changes will be under the hood so there are no GUI changes

Is it stable? Yes, CoAP was standardized in 2014 and since then hasn't changed.

Alv3s commented 5 years ago

What is the status on this? Is it something we could have soon?

shamasis commented 5 years ago

The addition of new protocols to Postman seems to be best done via a plugin system in Postman. We are working on the plugin abstraction as I type this. That work has been a bit on and off for a while since it requires us to really think through the interface and may even need to overhaul parts of our code. Hence cannot give a timeline yet.

However, as a first cut - are you looking at full CBOR spec or http response decoding that has application/cbor content type or encoding?

AndreMaz commented 5 years ago

@shamasis thanks for your reply.

CBOR spec could be optional as I can easily test my API with plain text or JSON as content type.

What I'm looking for is a tool that supports the core spec (CoAP + CoAP Observe + CoAP Block-Wise Transfer).

I think that the core spec would be enough for most users. Don't you agree @Alv3s?

This would be a great starting point for Postman in IoT world.

Alv3s commented 5 years ago

On my case, we are developing an IoT solution with a REST API gateway, thus we are using json instead of CBOR. We have considered using CBOR but for now we are focusing on Json. We were very keen to use Postman for Integrations Tests, as the team is already familiar with it. As far as we know, there are no tools for integratiosn test for CoAP (neither Json, plain text or CBOR).

antoniobaiao commented 5 years ago

@shamasis any news about this?

seppestas commented 5 years ago

Is there a place / issue where information on the plugin system can be found? Having a test client for CoAP with CBOR integration would be amazing, and most people already know how to use Postman...

AndreMaz commented 5 years ago

I'm glad to see that I'm not the only one who wants to see Postman supporting CoAP.

@shamasis @kunagpal you can check the @mkovatsc's Copper (Cu) CoAP user-agent and Copper for Chrome (Cu4Cr) CoAP user-agent. These apps/extensions (for browsers) implement the CoAP protocol and provide a basic GUI with GET/POST/PUT/DELETE/OBSERVE methods. Although they are no longer maintained they can provide some insights and inspiration regarding CoAP's integration into Postman.

ankitmhatre commented 4 years ago

Are we in a good position yet to put down the timelines for this protocol, coap has been around for a while now. Just curious and excited about this. Any Update ?

bboynton97 commented 3 years ago

Just chiming in that I'm struggling to find any decent CoAP testing clients and I already love Postman, so it'd be really cool to see this feature implemented

DavidJRobertson commented 2 years ago

I have also been looking for a postman-like tool for CoAP and found nothing.

ondrejtomcik commented 2 years ago

@shamasis how does it look like with the plugin API? Any guidance on what would be the best way to introduce CoAP in Postman?

helderjnpinto commented 1 year ago

any updates for this feature ?

zubeer95 commented 1 year ago

I am not sure if the cards Runtime Triage and Development are sorted by priority, but it seems to be a very long queue. CoAP feature would be highly appreciated since there aren't much alternatives available with a gui.

ondrejtomcik commented 1 year ago

Are you open for contribution @zubeer95 ?

zubeer95 commented 1 year ago

Sure! I have been working quite a lot with CoAP recently, how can I help?

ondrejtomcik commented 1 year ago

We need input from maintainer what is their expectation - how it should be implemented.

Drongerman commented 1 year ago

What I'm looking for is a tool that supports the core spec (CoAP + CoAP Observe + CoAP Block-Wise Transfer).

ondrejtomcik commented 1 year ago

What I'm looking for is a tool that supports the core spec (CoAP + CoAP Observe + CoAP Block-Wise Transfer).

We implement in our go-coap library all CoAP-related RFCs and we are keen to contribute to Postman support for CoAP. But nobody from Postman team replies here.

ondrejtomcik commented 1 year ago

@Drongerman we have also the client with the UI (open source), talking to CoAP Servers, but there we expect they understand OCF ISO-ratified IoT protocol, based on CoAP. That's probably not your case, or is it?

Drongerman commented 1 year ago

OCF could be also a case for us. Can you please share this UI client?

ondrejtomcik commented 1 year ago

OCF could be also a case for us. Can you please share this UI client?

Here you are @Drongerman.

If you are looking for the device stack as well, which runs even on the ESP32, and supports discovery, provisioning, cloud connectivity based on CoAP over TCP, and more, check this here. It’s natively supported and tested against our cloud and client stack, including go-coap, client, etc.