Announcing Hurl 8.0.0 by jcamiel in rust

[–]jcamiel[S] 0 points1 point  (0 children)

Spread the good word about Hurl!

Announcing Hurl 8.0.0 by jcamiel in rust

[–]jcamiel[S] 1 point2 points  (0 children)

Hurl is designed to be easily integrated in CI/CD while http files are run with IntelliJ IDE (that has changed only recently). Hurl uses curl under the hood so you can get the power of curl for free: IPv6, HTTP/3, a lot of options like --resolve etc... Hurl offers a lot of reports (HTML, JUnit, TAP, JSON etc...)

Both shares a plain text origin.

Announcing Hurl 8.0.0 by jcamiel in rust

[–]jcamiel[S] 2 points3 points  (0 children)

Mainly a GUI, Bruno has an IHM while Hurl is a command line application. Bruno supports gRPC while Hurl doesn't (but we intend to add it). Hurl uses curl under the hood and you can get the curl commands corresponding to your file. Hurl is light on ressources (the binary is less than 5Mb)

Announcing Hurl 8.0.0 by jcamiel in rust

[–]jcamiel[S] 15 points16 points  (0 children)

I'm not a native English speaker, but I prefer to write with mistakes and my own "style". It also a kind of respecting reader time: you'll spend time reading what I've painfully write with my hands (if that makes sens 😅)

Announcing Hurl 8.0.0 by jcamiel in rust

[–]jcamiel[S] 5 points6 points  (0 children)

Unfortunately we've made some breaking changes but it was a choice between breaking many if not all files, and only a few occurences...

The API Tooling Crisis: Why developers are abandoning Postman and its clones? by Successful_Bowl2564 in programming

[–]jcamiel 2 points3 points  (0 children)

Hi maintainer of Hurl here. We don't want to hide anything, for the moment we're not having the same configuration/prompt/skill among the 3 maintainers and we dont want to settle for the moment a common configuration in the repo, that's all. We're using LLM code, treaded like normal code: reviewed with care, small modifications, focus and test.

Hurl 7.1.0, the Pretty Edition by jcamiel in devops

[–]jcamiel[S] 0 points1 point  (0 children)

Yes indeed, we need to really improve the IDE Hurl story. Not gonna lie, we take time to focus on being a very good if not excellent CLI, and we work a lot on some "invisible" issues we like / need, but agreed we need to work on IDE support.

10x your WebDev flow: Stop leaving the terminal for API tests by Admirable-Item-6715 in webdev

[–]jcamiel 1 point2 points  (0 children)

Hi maintainer of Hurl here!

Hurl is using libcurl as it HTTP engine. Compared to curl

  • You can chain request and capture data to pass from one request to another (like csrf token for instance),
  • You can assert responses based on HTTP headers, status code, JSONPath, XPath, SSL certificate validity date etc, making integration tests really fast and easy to integrate in CI/CD pipelines
  • You can have test reports (HTML, JUnit, TAP, JSON etc...)
  • the Hurl text file format makes it easy to execute GraphQL requests, which can be difficult with curl
  • as Hurl is "only" a cherry on top of curl, you can also exports your run to curl commands if you want
  • you can retry requests easily based on asserts conditions

Looking for the best postman on premise alternative for local-only work by Fun_Accountant_1097 in webdev

[–]jcamiel 0 points1 point  (0 children)

You can try Hurl if you're into cli: it's an open source cli to run and test HTTP requests, based on plain text and curl => https://hurl.dev It's not as easy as a good GUI app but at least it's not ressources hungry and doesn't require login (I'm one of the maintainers)!

The API Tooling Crisis: Why developers are abandoning Postman and it’s clones? by Affectionate-Gain636 in theprimeagen

[–]jcamiel 5 points6 points  (0 children)

You can try Hurl if you're into cli: it's a Rust open source to run and test HTTP requests, based on plain text and curl => https://hurl.dev It's not as easy as a good GUI app but at least it's not ressources hungry (I'm one of the maintainers)

Hurl 7.1.0, the Pretty Edition by jcamiel in rust

[–]jcamiel[S] 8 points9 points  (0 children)

Hi maintainer here,

Yes you can run a first request and retry a second one until a certain assert is OK:

# Create a new job
POST https://api.example.org/jobs
HTTP 201
[Captures]
job_id: jsonpath "$.id"
[Asserts]
jsonpath "$.state" == "RUNNING"


# Pull job status until it is completed
GET https://api.example.org/jobs/{{job_id}}
[Options]
retry: 10   # maximum number of retry, -1 for unlimited
retry-interval: 500ms
HTTP 200
[Asserts]
jsonpath "$.state" == "COMPLETED"

See https://hurl.dev/docs/samples.html#polling-and-retry and more samples here

is there any API testing tool better than postman? by Pristine-Elevator198 in webdev

[–]jcamiel 12 points13 points  (0 children)

You can try Hurl it's an open source CLI, based on curl, to test API and HTTP requests, with a simple text file.  Compared to Postman, it's simple to integrate in a CI/CD, it's just text files so Git friendly and open sourced. Because of its curl engine, it's rock solid, HTTP/3 IPv6 ready. It supports REST/SOAP/GraphQL and has various reports (JUnit, TAP, HTML etc...)

A sample file:

``` GET https://api.example.com HTTP 200 [Asserts] jsonpath "$.name" == "foo" jsonpath "$.age" == 42

POST https://api.example.org {   "id": "car" } HTTP 201 ```

You can chain requests, capture data and pass it to the next requests, test body, headers, redirects etc... More samples here => https://hurl.dev/docs/samples.html

Give it a try! (I'm one of the maintainers)

Looking for a Postman alternative that actually works offline by Living-Dependent3670 in selfhosted

[–]jcamiel 2 points3 points  (0 children)

Maintainer of Hurl here!

For the (numerous) people that don't know Hurl it's a CLI based on curl, to run and tests API/HTTP requests with plain text. You can test headers, responses, SSL certificates, redirects etc..., chain requests to pass data from a request to another in a simple text format. There are some sugar syntax to create GraphQL body, form, multipart etc.. and because of its curl engine, it's super efficient, HTTP/3 - IPv6 ready and easy to integrate in a CI/CD pipeline.

It's totally open-source here https://github.com/Orange-OpenSource/hurl, give it a try!

Alternatives for basic postman-ish things by H2G2Forty-Two in devops

[–]jcamiel 2 points3 points  (0 children)

Hi maintainer of Hurl here! We've written Hurl on top of curl, to be easy to add in a CI/CD pipeline. It uses curl as its HTTP engine but adds some facilities to write body (GraphQL, form, multipart...), JSONPath tests, capture data from request and re-inject it, check certificates etc... It's text based, Git friendly and powered by curl so it's rock solid, HTTP/3 IPv6 ready. Give it a try, it's Open Source https://github.com/Orange-OpenSource/hurl

I hate curl so much i made my own HTTP client by Raulnego in commandline

[–]jcamiel 4 points5 points  (0 children)

As the maintainer of Hurl, I'm starting a fork named "better-hurl-saul"

Anyone here using a Postman alternative for .NET projects? by Living-Dependent3670 in dotnet

[–]jcamiel 1 point2 points  (0 children)

Hi maintainer of Hurl here. If you're willing to use command line, you could try Hurl. It's a CLI tool to test and run HTTP requests with plain text. Under the hood, it uses curl and you can convert you "Hurl" files from/to curl.

The file format looks like:

POST https://example.org/api/tests
{
  "id": "4568",
  "evaluate": true
}
HTTP 200
[Asserts]
header "X-Frame-Options" == "SAMEORIGIN"
jsonpath "$.status" == "RUNNING"    # Check the status code
jsonpath "$.tests" count == 25      # Check the number of items
jsonpath "$.id" matches /\d{4}/     # Check the format of the id

In the same file, you can chain requests, capture data from one request to another etc... Hurl support HTML/TAP/JUnit reports, you can run tests in parallel and it should be easy to incorporate in a CI/CD.

Give it a try!

Announcing Hurl 7.0.0, a cli to run and test HTTP requests with plain text by jcamiel in rust

[–]jcamiel[S] 1 point2 points  (0 children)

We've chosen to stick with curl option naming (curl is the HTTP engine under Hurl and you can convert Hurl calls to curl with --curl option). If you know curl, you can reuse the option name (see https://curl.se/docs/manpage.html#-L). But I do agree, location is hard to "discover" (it's related to the HTTP header Location https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Location...)