Hi friends!

I published elm-http-builder 4.0.0 just now for 0.18

There are a bunch of changes so I'm sharing the release notes below. Any 
longer-form concerns, share them here. If you'd like direct help, jump into 
the #http channel in slack <http://elmlang.herokuapp.com>.

Thanks!
Luke


*Release notes:*


A lot has happened since 3.0.0! The API is smaller, and more focused and 
I'm excited about that. In particular, BodyReader and its friends have been
removed. Since this is the official upgrade for Elm 0.18, the new 
elm-lang/http package has a lot of influence. The new Http package includes 
a much more cohesive experience for declaring expectations of response 
bodies. See the Http.Expect type in elm-lang/http 
<http://package.elm-lang.org/packages/elm-lang/http/1.0.0/Http#Expect>. 
This feature is even reminiscent of BodyReader!


Since we have this as a part of the platform now, all of the BodyReader-related 
features are gone. For these you'll just "use the platform", as they say, 
and make use of withExpect in your builder pipelines. In the future we may 
include fancier, custom Expect formulations for your convenience.


Secondly, you'll now have the option to convert a RequestBuilder a into an 
Http.Request 
a or send it directly using HttpBuilder.send, which has the same signature 
as Http.send. This helps to keep your builder pipelines clean while also 
leaving you the option to get out an Http.Request if you need. Long story 
short, HttpBuilder is *just* about building requests, just like when it 
started out. The platform covers the rest.


Here's the list of all changes:


Removals
   
   - url: use withQueryParams instead to add query params to your url
   - withBody: use one of the more specific with*Body functions instead
   - withMultipartBody: string multipart bodies are the only type supported 
   by elm-lang/httpcurrently, sojust use withMultipartStringBody instead
   - withMimeType: the first parameter to withStringBody will set your MIME 
   type automatically. Alternatively, set a header with withHeader
   - withCacheBuster: since we're giving up control of the send process, we 
   can't chain on a Task to get the current time
   - withZeroStatusAllowed: we don't control the send process. You can 
   handle this yourself under the Http.BadStatus error when you deal with 
   errors in your send msg tagger.
   - BodyReader: see intro
   - stringReader: see intro
   - jsonReader: see intro
   - unitReader: see intro
   - Error: since we don't control the send process we don't need this
   - Response: same as Error
   - toSettings: Http.Settings doesn't exist anymore, it was moved under 
   Http.Request
   - Request: since we expect you'll need to import Http now anyway, you 
   can just import this from Http
   - Settings: see toSettings

Breaking Changes
   
   - RequestBuilder -> RequestBuilder a, where the type parameter is the 
   expected type of the returned payload.
   - get, post, etc. return RequestBuilder (). The default is to make no 
   attempt to decode anything, so it is (). You can use withExpect to 
   attach an Http.Expect MyType, which will turn it into a RequestBuilder 
   MyType.
   - toRequest returns an Http.Request a
   - send wraps Http.send, read up on it to see how it works 
   <http://package.elm-lang.org/packages/elm-lang/http/1.0.0/Http#send>.

Additions
   
   - withExpect: attach an Http.Expect to the request
   - withQueryParams: decorate the URL with query params

A sincere thank you to @evancz <https://github.com/evancz>, @rtfeldman 
<https://github.com/rtfeldman>, @bogdanp <https://github.com/bogdanp>, and 
@knewter <https://github.com/knewter> for time and discussions that helped 
me make the decisions that led to these changes!


And a shoutout to @prikhi <https://github.com/prikhi> for taking the time 
to update the existing API for 0.18 and publishing it as 
priki/elm-http-builder 
<http://package.elm-lang.org/packages/prikhi/elm-http-builder/latest>.

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to