Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High-level HTTP client support #113

Open
2 of 12 tasks
akka-ci opened this issue Sep 8, 2016 · 13 comments
Open
2 of 12 tasks

High-level HTTP client support #113

akka-ci opened this issue Sep 8, 2016 · 13 comments
Labels
1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted help wanted Identifies issues that the core team will likely not have time to work on t:client Issues related to the HTTP Client
Milestone

Comments

@akka-ci
Copy link

akka-ci commented Sep 8, 2016

Issue by jrudolph
Wednesday Feb 11, 2015 at 13:54 GMT
Originally opened as akka/akka#16856


It would be convenient if akka-http would provide common high-level HTTP functionality similar to what a browser supports in its backend. This is a collection of all the things that would belong into this category. This is a metaticket and each subfeature has its own ticket.

@akka-ci akka-ci added this to the http-backlog milestone Sep 8, 2016
@akka-ci akka-ci added help wanted Identifies issues that the core team will likely not have time to work on t:http labels Sep 8, 2016
@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by kanerogers
Monday Mar 09, 2015 at 21:20 GMT


Awesome. Looking forward to this.

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by jvican
Friday Apr 03, 2015 at 00:07 GMT


Me too. Great and necessary features!
If you need any contribution, let me know and I will help.

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by rkuhn
Tuesday Jun 16, 2015 at 07:59 GMT


Thanks for your offer to help, the core team will likely not get around to these anytime soon.

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by ktoso
Friday Oct 09, 2015 at 07:43 GMT


Somewhat related to akka/akka#18550

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by ktoso
Tuesday Nov 24, 2015 at 14:33 GMT


For reference when designing the client side:

I bumped into very nice blog post which compared different Scala HTTP clients, among others Spray and Play:
https://www.implicitdef.com/2015/11/19/comparing-scala-http-client-libraries.html
I agree with the article that "dead simple" should be a focus of the Client Side, and the awesome stuff should be additions.

// cc @sirthias @jrudolph

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by francisdb
Tuesday Nov 24, 2015 at 14:45 GMT


Could be a joined effort together with
playframework/playframework#4297 ?

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by ktoso
Tuesday Nov 24, 2015 at 14:49 GMT


Thanks for cross referencing to that ticket – I've commented there as well as you'll notice :-)
We definitely want to share bits of code with WS, we'll see how exactly we'll be able to do that (it's SSL/TLS handling is excellent).

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by hepin1989
Tuesday Nov 24, 2015 at 15:27 GMT


I just encounter this problem too,and then just try the AHC.A higher level like play-ws would be really helpful,the current singleRequest one is not that handy.for the Play-WS,I don't think that could be split out,but for later,maybe we could have two implement of play-ws,one for the AHC one and one for the AKKA based one,anyway there is a WSAPI.

For the client side there is https://github.com/eBay/parallec which we may take a look too.

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by ktoso
Tuesday Nov 24, 2015 at 15:32 GMT


for the Play-WS,I don't think that could be split out,but for later

I think it is crucial we do this. no one wants to re-implement the awesome work around SSL/TLS handling Will did in there. We, in Akka HTTP, are focusing to have a solid basis to build APIs on - easy to use API comes next :-)

I'm not too sure about parallec, I skimmed the dependencies and it's somewhat of a weird mix. Also, its use case is very specific, not a general purpose Http Client I feel.

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by hepin1989
Tuesday Nov 24, 2015 at 15:47 GMT


Yes,our team is continuse to using Play-WS like thing,we wrap it ourself for none-play project,and for akka-http I think it should support https://github.com/netty/netty-tcnative for OpenSSL-based SSLEngine implementation:).

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by francisdb
Tuesday Nov 24, 2015 at 15:52 GMT


Exactly. Anybody that wants to create a library that needs to do http calls (reactive database driver, ...) needs to make a decision on what client to use. Currently it's a hard choice. Since there is no good default. I would love to use play-ws but it's to bloated with all it's dependencies.

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by jeffpeiyt
Tuesday Dec 01, 2015 at 06:05 GMT


@ktoso Yes, Parallec does focus on some large scale use cases (such as serving as agent master to manage a lot of agents or making a lot of concurrent calls). It uses AHC and also supports TCP/PING/SSH, which may make the dependency looks mixed.

Probably @hepin1989 means that he likes Akka HTTP to have some level of built in concurrency control to handle large scale calls.

@akka-ci
Copy link
Author

akka-ci commented Sep 8, 2016

Comment by ktoso
Wednesday Apr 13, 2016 at 08:32 GMT


comment via @2Beaucoup:

I can imagine that additional shortcuts like HTTP().get("http://akka.io/") could become handy. But that would be another alternative way of doing things. Oh my...

Yeah, however may be worth drafting a bit as experimental side/pet project in any case...

I toyed around with it and the nice idea about it is that fluent DSLs can lead towards doing only the right thing (also, not allow calling request unless dataBytes sink (or "please drain but i dont care") is defined etc.

Another answer would be WS is we're able to make it have switchable impls and rip it out (which is in progress).

Up for grabs and opinions still.

@ktoso ktoso added 1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted and removed t:http labels Sep 8, 2016
@jrudolph jrudolph added t:client Issues related to the HTTP Client and removed t:client Issues related to the HTTP Client t:http:client labels Nov 2, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 - triaged Tickets that are safe to pick up for contributing in terms of likeliness of being accepted help wanted Identifies issues that the core team will likely not have time to work on t:client Issues related to the HTTP Client
Projects
None yet
Development

No branches or pull requests

3 participants