PostMan is NOT CI / CD
Owen Rubel - API EXPERT
Original Amazon employee (95-98) / Verifiable creator of API Chaining(R)
Calling an API, serving that API endpoint and mocking an api endpoint are all not the same thing. But the people at Postman seem to think they are (or at least they MARKET them as all being the same thing).
Postman is a tool for MOCKING API's via OpenApi in a separate app from your environment. It enables:
- mocks for static api docs
- mocking for unit tests
Postman is NOT Continuous Integration/Development
As it does all this in a separate app from your environment/architecture, it has no ability for continuous integration/continuous development; it exists outside the development lifecycle.
Now some of you have said 'so does EVERY IDE'. UNTRUE!
IDE stands for INTEGRATED development environment. For example, Intellij and Eclipse both allow you to run your server in a console so you can develop and test at the same time. Postman does not do this! There is no integration.
If you look at Postmans page on CI/CD, you will notice they require you to install:
- an additional Nodejs server
- and a secondary app call Newman
Any developer with even a a SMALL AMOUNT OF EXPERIENCE with an HTTP request will find this LAUGHABLE as you can call an API with CURL (or even a script) without installing a secondary server and app.
Also, It is NOT a server/architecture. At best, you are merely creating MOCKDATA for Unit testing via OpenApi docs which is (as the lead of OpenApi spec has stated) 'a static design doc'
PostMan is NOT ROLE-Based API Docs
If you are claiming it creates documentation, you are creating STATIC documentation. Everytime your endpoints change (which they do frequently) that document has to reflect it EXACTLY... and it has to allow for ROLES so people with different preivileges see different docs. It does NEITHER OF THESE! Proper documentation should be dynamic so that users see the API docs as they currently are for the roles/privileges they have.
A proper way to generated docs is dynamically like in the BeAPI framework where the docs are based on ROLES and are autogenerated from the MVC (not static docs):
Postman is NOT Integration Testing
I recently had someone tell me that Postman did integration testing... but the whole point behind integration testing is in the name: 'integration'. Postman is not a server and thus it cannot DO integration tests... it can merely make an API call (like a browser).
If an 'integration test' fails during a commit/build, it will throw an error that can bubble up and you have to check the stacktrace / test and see what failed and what is wrong. Postman cannot run integration tests on your builds because it is a separate app (not within your architectural call flow). So it will NEVER be called when doing a commit or build so you cannot do integration tests with Postman!
Everytime I tried to mention this on the Postman forums or even on their currently running Postman Galaxy event, I immediately got booted; why would they not want people to know their functionality? because they are running a campaign of disinformation to make people think their tool does more... when it does not.
Making HTTP Calls with Postman
This doesn't mean it can't make an HTTP call to a preexisting 3rd party API; any script can do this. But it cannot CREATE/SERVE API ENDPOINTS. In other words, those MOCKS it creates cannot be called outside of the tool. They are static ... and only the Postman tool can see or use them.
Postman is strictly a tool for creating Unit Tests for API's. This is what Postman EXCELS at. If you were to use it for anything, this is the one thing you would use it for.
This is also what the tool was designed for. But for some reason people think it is meant for creating API's. It does not.
Specialist Solution Engineer at MuleSoft
4 年As always the truth is somewhere inbetween two peoples truths. Owen Rubel respectfully imo you do your undoubted skill, enthusiasm, experience deservice by your delivery. Your findings are important and you could shape the API world more with more honey and less vinegar, frustrating maybe but just the way of the world. On Postman it might be clunky to the purist but have you considered their audience in the future is not the purist but the mass of less and less technical users who the IT world is transforming too whether we like it or not? Postman Flow will remove the need to learn javascript to chain api calls in the future, examine why Postman is doing this.
Software Engineer
4 年IMHO, OpenAPI is just to document the API, and it requires constant updating. There are tools out there to generate the server interface for various languages using the OpenAPI spec, but syncing the document and the implementation details is another ordeal. Postman is only good for demo, otherwise use curl or any existing portable HTTP library if you need more flexibility. Postman for automated testing is too heavy based on my experience.