{"repo":"oliyh/martian","free":true,"listed":false,"github":"https://github.com/oliyh/martian","clone":"git clone https://github.com/oliyh/martian.git","description":"The HTTP abstraction library for Clojure/script, supporting OpenAPI, Swagger, Schema, re-frame and more","language":"Clojure","stars":592,"topics":["martian","swagger-api","http","http-client","swagger","clojure","clojurescript","interceptor","open-api","schema"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"Martian The HTTP abstraction library for Clojure/Script and Babashka, supporting OpenAPI/Swagger and many HTTP client libraries. --- Calling HTTP endpoints can be complicated. You have to construct the right URL with the right route parameters, remember what the query parameters are, what method to use, how to encode a request body, coerce a response and many other things that leak into your codebase. Martian takes a description of these details — either from your OpenAPI/Swagger definition, or just as lovely Clojure data — and provides a client interface to the API that abstracts you away from HTTP and lets you simply call operations with parameters, keeping your codebase clean. You can bootstrap it in one line and start calling the server: Implementations for many popular HTTP client libraries are supplied as modules (see below), but any other HTTP library can be used due to the extensibility of Martian's interceptor chain. It also allows custom behaviour to be injected in a uniform and powerful way. The martian-test module allows you to assert that your code constructs valid requests to remote servers without ever actually calling them, using the OpenAPI/Swagger spec to validate the parameters. It can also generate responses in the same way, ensuring that your response handling code is also correct. Examples are below. --- Table of Contents 1. Latest versions & API docs - Core module - Supported HTTP clients - Testing and interop libraries 2. Features 3. Basic usage 4. Boo","default_branch":null,"files":null,"tree":[],"storefront":"/r/oliyh","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/oliyh/martian/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}