{"id":3865,"date":"2025-02-09T12:15:31","date_gmt":"2025-02-09T11:15:31","guid":{"rendered":"https:\/\/informatik.htwk-leipzig.de\/seminar\/?p=3865"},"modified":"2025-02-20T15:07:31","modified_gmt":"2025-02-20T14:07:31","slug":"postman","status":"publish","type":"post","link":"https:\/\/informatik.htwk-leipzig.de\/seminar\/lehrveranstaltungen\/betriebliche-informationssysteme\/2025\/postman\/","title":{"rendered":"Postman"},"content":{"rendered":"\r\n<p>Postman ist ein weit verbreitetes Tool, das Entwicklern hilft, APIs zu testen, zu entwickeln und zu dokumentieren. Es bietet eine benutzerfreundliche Oberfl\u00e4che, um HTTP-Anfragen zu erstellen und zu senden. Au\u00dferdem erm\u00f6glicht Postman die Zusammenarbeit von Teams an API-Projekten und bietet Funktionen wie Team-Workspaces, um gemeinsam an APIs zu arbeiten. Als zentrale Anlaufstelle f\u00fcr API-Dokumentation kann Postman genutzt werden, um einen \u00dcberblick zu bekommen und ist daher vor allem auch f\u00fcr Onboarding von neuem Personal praktisch.<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>Neben HTTP kann Postman auch als Klient f\u00fcr GraphQL, Protobuf\/GRPC, Websockets und MQTT-Endpunkten genutzt werden. Das Frontend kann als Standalone-Anwendung, aber auch direkt im Browser genutzt werden.<\/p>\r\n<figure id=\"attachment_3871\" aria-describedby=\"caption-attachment-3871\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3871 size-large\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/screenshot-1024x700.png\" alt=\"\" width=\"910\" height=\"622\" srcset=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/screenshot-1024x700.png 1024w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/screenshot-300x205.png 300w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/screenshot-768x525.png 768w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/screenshot-1536x1050.png 1536w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/screenshot.png 1568w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><figcaption id=\"caption-attachment-3871\" class=\"wp-caption-text\">Die grafische Nutzeroberfl\u00e4che von Postman<\/figcaption><\/figure>\r\n<p>&nbsp;<\/p>\r\n<h2 dir=\"auto\" data-heading=\"Interaktion mit Schnittstellen\">Interaktion mit Schnittstellen<\/h2>\r\n<p>Grunds\u00e4tzlich ist Postman sehr analog zu einem HTTP-Service aufgebaut: links im UI ist eine Baumstruktur, welche \u201eCollections\u201c auflistet, die sich ausklappen lassen, um weitere Eintr\u00e4ge und Ordner anzeigen zu lassen. Eine Collection bildet i.d.R. genau einen HTTP-Service ab. Die ausklappbaren Eintr\u00e4ge sind Endpunkte des Service (z.B. POST \/login) und die Ordner komplexere Pfade (z.B. POST \/cart\/add). Collections und Endpunkte k\u00f6nnen jeweils mit Dokumentation versehen werden. Pro Endpunkt k\u00f6nnen neben der HTTP-Methode und dem Pfad weitere Informationen vorbef\u00fcllt und als Beispiel gespeichert werden. Dazu geh\u00f6rt:<\/p>\r\n<ul>\r\n<li>Request Body<\/li>\r\n<li>Request Header<\/li>\r\n<li>URL-Parameter<\/li>\r\n<li>Pre-Request Script<\/li>\r\n<li>Post-Response Script<\/li>\r\n<li>Beispiel HTTP-Response Body<\/li>\r\n<\/ul>\r\n<p>Pro Endpunkt k\u00f6nnen mehrere solcher Beispiele gespeichert werden. In der Regel ist es sinnvoll, pro Endpunkt ein positives (Statuscode 2xx) und ein negatives (Statuscode z.B. 4xx) zu speichern. Die Collections und Endpunkte k\u00f6nnen zwar per Hand einzeln angelegt werden, i.d.R. werden diese aber automatisch angelegt auf Grundlage von etwa einer OpenAPI-Spezifikation. Neben dem OpenAPI-Import unterst\u00fctzt Postman weitere Formate:<\/p>\r\n<ul>\r\n<li>RAML<\/li>\r\n<li>Protobuf<\/li>\r\n<li>GraphQL<\/li>\r\n<li>WSDL<\/li>\r\n<\/ul>\r\n<p>Pre-Request Scripts werden ausgef\u00fchrt, bevor die HTTP-Anfrage gesendet wird und k\u00f6nnen beispielsweise genutzt werden, um den Request Body mit generierten Daten oder mit verarbeiteten Daten einer anderen Anfrage vorzubef\u00fcllen. Post-Request Scripts werden nach Erhalt der HTTP-Antwort ausgef\u00fchrt und haben auf diese Zugriff. Collections k\u00f6nnen Variablen haben, um Daten zwischen Anfragen zu speichern und wiederzuverwenden. Post-Request Scripts k\u00f6nnen z.B. genutzt werden, um Daten aus der Antwort in einer solchen Variable zu speichern. Ganz konkret kann ein Session-Token aus einer Login-Antwort gespeichert und f\u00fcr weitere Anfragen, welche Authentifikation ben\u00f6tigen, genutzt werden. Post-Response Scripts werden au\u00dferdem f\u00fcr Unit Testing genutzt.<\/p>\r\n<h2>Unit Testing<\/h2>\r\n<p>Neben dem manuellen Ausf\u00fchren und Validieren von Endpunkten k\u00f6nnen Endpunkte auch automatisiert getestet werden. Dazu wird dem Nutzer in dem Post-Response-Script eine JavaScript-Schnittstelle bereitgestellt, mithilfe deren Unit-Tests definiert werden k\u00f6nnen. Die Tests werden nach jedem Aufruf des Endpunktes ausgef\u00fchrt und die einzelnen Ergebnisse aufgelistet.<\/p>\r\n<figure id=\"attachment_3876\" aria-describedby=\"caption-attachment-3876\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3876 size-large\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/unittest-1024x722.jpg\" alt=\"\" width=\"910\" height=\"642\" srcset=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/unittest-1024x722.jpg 1024w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/unittest-300x211.jpg 300w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/unittest-768x541.jpg 768w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/unittest-1536x1083.jpg 1536w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/unittest.jpg 1708w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><figcaption id=\"caption-attachment-3876\" class=\"wp-caption-text\">Unittesting in Postman. Quelle: https:\/\/assets.postman.com\/postman-docs\/v11\/request-test-tab-v11.23.jpg, zuletzt aufgerufen: 12.02.2025<\/figcaption><\/figure>\r\n<p>&nbsp;<\/p>\r\n<p>Neben der grafischen Anwendung kann Postman auch als CLI-Tool genutzt werden. Dies ist vor allem n\u00fctzlich, um Unit-Tests einer Collection in einer CI\/CD-Pipeline auszuf\u00fchren, etwa nachdem der Service automatisiert in einer Testumgebung aufgesetzt wurde. Alle Tests einer Collection k\u00f6nnen geb\u00fcndelt als JSON-Datei exportiert und von der CLI genutzt werden<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<h2>Mockserver<\/h2>\r\n<p>Neben der Dokumentation von bestehenden Services kann Postman direkt im Entwicklungsprozess einer Schnittstelle genutzt werden. Bevor der Service vollst\u00e4ndig entwickelt wurde, kann die Schnittstelle in Postman angelegt und mit Beispielen dokumentiert werden. Alle Beispiele einer Collection k\u00f6nnen dann genutzt werden, um einen Mockserver zu erstellen. Dabei antwortet der Mockserver auf eine Anfrage mit einem passenden Beispiel aus der Collection. Zum Ausw\u00e4hlen eines Beispiels wird grunds\u00e4tzlich Pfad und Methode genutzt, dies kann aber auch noch auf Antwortk\u00f6rper und bestimmte Header erweitert werden. Der Mockserver wird direkt von Postman selbst gehostet und kann ohne Weiteres \u00fcber das Internet benutzt werden. Mockserver k\u00f6nnen genutzt werden, um eine Schnittstelle zu benutzen, bevor der dazugeh\u00f6rige Service implementiert ist, um die Entwicklung zu optimieren und um auf Fehler der Schnittstelle fr\u00fchzeitig aufmerksam zu werden. Ganz konkret kann in einer Anwendung, die aus HTTP-Server und Web-Frontend besteht, das Frontend parallel zu dem Server implementiert werden, indem ein Mockserver genutzt wird.<\/p>\r\n<p>&nbsp;<\/p>\r\n<h2>Flows<\/h2>\r\n<p>Flows erm\u00f6glichen die Automatisierung von Abl\u00e4ufen und bieten eine benutzerfreundliche visuelle Programmierung, bei der Bl\u00f6cke miteinander verkn\u00fcpft werden. Eine Vielzahl von Standardoperationen ist direkt verf\u00fcgbar, sodass g\u00e4ngige Aufgaben schnell umgesetzt werden k\u00f6nnen. Das Verhalten der Flows l\u00e4sst sich jedoch durch TypeScript beliebig erweitern, wodurch eine hohe Flexibilit\u00e4t erreicht wird. Flows k\u00f6nnen zudem auf andere Flows zur\u00fcckgreifen, was die Modularit\u00e4t und Wiederverwendbarkeit von Abl\u00e4ufen f\u00f6rdert. Zus\u00e4tzlich bietet ein gro\u00dfer Katalog von Beispielabl\u00e4ufen eine wertvolle Grundlage, um schnell in die Automatisierung einzutauchen und bew\u00e4hrte L\u00f6sungen zu nutzen.<\/p>\r\n<p>&nbsp;<\/p>\r\n<h2 dir=\"auto\" data-heading=\"Alternativen: Insomnia\">Alternativen<\/h2>\r\n<h3>Hoppscotch<\/h3>\r\n<p>Ein Nachteil von Postman ist, dass das Backend nicht self-hosted werden kann und somit der gesamte Workspace in der Postman-Cloud gespeichert wird. Eine Alternative, welche dies erm\u00f6glicht, ist Hoppscotch. Hoppscotch ist Open Source und bietet eine Nutzeroberfl\u00e4che, die sehr \u00e4hnlich zu Postman ist:<\/p>\r\n<figure id=\"attachment_3873\" aria-describedby=\"caption-attachment-3873\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3873 size-large\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/hoppscotch-screenshot-1024x579.png\" alt=\"\" width=\"910\" height=\"515\" srcset=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/hoppscotch-screenshot-1024x579.png 1024w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/hoppscotch-screenshot-300x170.png 300w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/hoppscotch-screenshot-768x434.png 768w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/hoppscotch-screenshot-1536x869.png 1536w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/hoppscotch-screenshot.png 1697w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><figcaption id=\"caption-attachment-3873\" class=\"wp-caption-text\">Die grafische Nutzeroberfl\u00e4che von Hoppscotch. Quelle: https:\/\/mintlify.s3.us-west-1.amazonaws.com\/hoppscotch\/images\/hoppscotch-dark.png, zuletzt aufgerufen: 12.02.2025<\/figcaption><\/figure>\r\n<p>&nbsp;<\/p>\r\n<p>Hoppscotch unterst\u00fctzt neben REST, GraphQL, Protobuf\/GRPC, MQTT und Websockets auch direkte Integration mit der weit verbreiteten Websocket-Bibliothek \u201eSocket.io\u201c. Als CLI kann Hoppscotch etwa auch in CI\/CD-Pipelines genutzt werden, um Schnittstellen vor dem Deployment automatisiert zu testen.<\/p>\r\n<p>&nbsp;<\/p>\r\n<h3>\u00a0<\/h3>\r\n<h3>Insomnia<\/h3>\r\n<p>Eine weitere Alternative zu Postman ist Insomnia. Wie auch Hoppscotch ist Insomnia Open Source und von der Nutzeroberfl\u00e4che her recht \u00e4hnlich zu Postman:<em><br \/><\/em><\/p>\r\n<figure id=\"attachment_3872\" aria-describedby=\"caption-attachment-3872\" style=\"width: 910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3872 size-large\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/insomnia-screenshot-1024x612.png\" alt=\"\" width=\"910\" height=\"544\" srcset=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/insomnia-screenshot-1024x612.png 1024w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/insomnia-screenshot-300x179.png 300w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/insomnia-screenshot-768x459.png 768w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/insomnia-screenshot-1536x918.png 1536w, https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2025\/02\/insomnia-screenshot-2048x1224.png 2048w\" sizes=\"auto, (max-width: 910px) 100vw, 910px\" \/><figcaption id=\"caption-attachment-3872\" class=\"wp-caption-text\">Die grafische Nutzeroberfl\u00e4che von Insomnia. Quelle: https:\/\/raw.githubusercontent.com\/Kong\/insomnia\/develop\/screenshots\/main.png, zuletzt aufgerufen: 12.02.2025<\/figcaption><\/figure>\r\n<p>&nbsp;<\/p>\r\n<p>Wichtige Features von Insomnia sind:<\/p>\r\n<ul>\r\n<li data-start=\"59\" data-end=\"70\">Debugging<\/li>\r\n<li data-start=\"71\" data-end=\"98\">Design mit OpenAPI-Editor<\/li>\r\n<li data-start=\"99\" data-end=\"112\">Unittesting<\/li>\r\n<li data-start=\"113\" data-end=\"156\">Mockserver (kann auch self-hosted werden)<\/li>\r\n<li data-start=\"157\" data-end=\"194\">Nutzung in CI\/CD durch Insomnia-CLI<\/li>\r\n<li data-start=\"195\" data-end=\"233\">Erweiterbarkeit durch Plug-in-System<\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\r\n<p>Neben dem Self-Hosting des Insomnia-Backends oder der Cloud k\u00f6nnen alle Daten auch komplett lokal gespeichert oder per Git-Integration synchronisiert werden.<\/p>\r\n<p>&nbsp;<\/p>\r\n<div>\r\n<h2>Ressourcen<\/h2>\r\n<div>1. https:\/\/www.postman.com\/postman-enterprise\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>2. https:\/\/learning.postman.com\/docs\/integrations\/available-integrations\/gitlab\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>3. https:\/\/learning.postman.com\/docs\/integrations\/available-integrations\/ci-integrations\/gitlab-ci\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>4. https:\/\/learning.postman.com\/docs\/integrations\/available-integrations\/dropbox\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>5. https:\/\/learning.postman.com\/docs\/integrations\/available-integrations\/github\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>6. https:\/\/learning.postman.com\/docs\/integrations\/available-integrations\/ci-integrations\/github-actions\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>7. https:\/\/www.postman.com\/api-platform\/api-lifecycle\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>8. https:\/\/learning.postman.com\/docs\/designing-and-developing-your-api\/mocking-data\/mock-an-api\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>9. https:\/\/www.postman.com\/product\/flows\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>10. https:\/\/www.postman.com\/pricing\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>11. https:\/\/insomnia.rest\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>12. https:\/\/docs.insomnia.rest\/assets\/images\/entry-page.png, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>13. https:\/\/docs.hoppscotch.io\/documentation\/self-host\/getting-started, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>14. https:\/\/docs.hoppscotch.io\/documentation\/clients\/cli\/overview, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>15. https:\/\/hoppscotch.io\/, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>16. https:\/\/hoppscotch.com\/pricing, zuletzt aufgerufen 12.02.2025<\/div>\r\n<div>17. https:\/\/mintlify.s3.us-west-1.amazonaws.com\/hoppscotch\/images\/hoppscotch-dark.png, zuletzt aufgerufen 12.02.2025<\/div>\r\n<br \/><br \/><br \/><br \/><\/div>\r\n<h3>\u00a0<\/h3>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Postman ist ein weit verbreitetes Tool, das Entwicklern hilft, APIs zu testen, zu entwickeln und zu dokumentieren. Es bietet eine<\/p>\n","protected":false},"author":196,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-3865","post","type-post","status-publish","format-standard","hentry","category-betriebliche-informationssysteme"],"_links":{"self":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/3865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/users\/196"}],"replies":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/comments?post=3865"}],"version-history":[{"count":13,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/3865\/revisions"}],"predecessor-version":[{"id":3910,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/3865\/revisions\/3910"}],"wp:attachment":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media?parent=3865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/categories?post=3865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/tags?post=3865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}