Re: [akka-user] akka-http-experimental: Using the spray DSL: how to complete a route with a Source[ByteString]?

2015-01-20 Thread André
Hi Allan,

have you tried the completeWith 

 
directive? Look here 
for
 
examples.

Cheers
André

On Tuesday, January 20, 2015 at 2:14:49 PM UTC+1, Allan Brighton wrote:
>
> Hi Roland,
>
> I wasn't sure how to use the new streaming APIs from the spray DSL, so I 
> used the akka-http core API instead:
>
>   implicit val materializer = FlowMaterializer()
>
>   val binding = Http().bind(interface = settings.interface, port = 
> settings.port)
>   binding.connections.foreach { c ⇒
> logger.info(s"Accepted new connection from ${c.remoteAddress}")
> c.handleWithAsyncHandler {
>   case HttpRequest(GET, uri, _, _, _)   ⇒ httpGet(uri)
>   case HttpRequest(POST, uri, _, entity, _) ⇒ httpPost(uri, entity)
>   case HttpRequest(HEAD, uri, _, _, _)  ⇒ httpHead(uri)
>   case HttpRequest(DELETE, uri, _, _, _)⇒ httpDelete(uri)
>   case _: HttpRequest   ⇒ Future.successful(
> HttpResponse(StatusCodes.NotFound, entity = "Unknown resource!"))
> }
>   }
>
> Is use of the spray DSL still encouraged or is it deprecated in favour of 
> the above usage?
>
> Thanks,
> Allan
>
> On Tuesday, January 20, 2015 at 1:10:56 PM UTC+1, rkuhn wrote:
>>
>> Hi Allan,
>>
>> there should in principle be a marshaller that wraps your Source into an 
>> Entity, what is the exact error you are seeing?
>>
>> Regards,
>>
>> Roland
>>
>> 7 jan 2015 kl. 14:00 skrev Allan Brighton :
>>
>> Hi,
>>
>> I know how to do this now using the new akka-http core API, but how would 
>> it work using the spray-like DSL?
>> How can I complete an http get using a Future[Source[ByteString]]?
>>
>> import akka.http.model._
>> import akka.http.server._
>> ...
>>   def route: Route =
>> path("get") {
>>   get {
>> parameters('path, 'id ?) { (path, id) =>
>>   respondWithMediaType(`application/octet-stream`) {
>> complete {
>>   val f: Future[Source[ByteString]] = ???
>>   f.onComplete {
>> case Success(source) => ...
>> case Failure(ex) => ...
>>   }
>> }
>>   }
>> }
>>   }
>> }
>>
>> I would also be interested in an example going the other way: 
>> implementing an http post that receives data from a stream.
>>
>> Thanks,
>> Allan
>>
>>
>>
>> -- 
>> >> Read the docs: http://akka.io/docs/
>> >> Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>> >> Search the archives: https://groups.google.com/group/akka-user
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Akka User List" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to akka-user+...@googlegroups.com.
>> To post to this group, send email to akka...@googlegroups.com.
>> Visit this group at http://groups.google.com/group/akka-user.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>>
>> *Dr. Roland Kuhn*
>> *Akka Tech Lead*
>> Typesafe  – Reactive apps on the JVM.
>> twitter: @rolandkuhn
>> 
>>  
>>

-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


Re: [akka-user] akka-http-experimental: Using the spray DSL: how to complete a route with a Source[ByteString]?

2015-01-20 Thread Allan Brighton
Hi Roland,

I wasn't sure how to use the new streaming APIs from the spray DSL, so I 
used the akka-http core API instead:

  implicit val materializer = FlowMaterializer()

  val binding = Http().bind(interface = settings.interface, port = settings.
port)
  binding.connections.foreach { c ⇒
logger.info(s"Accepted new connection from ${c.remoteAddress}")
c.handleWithAsyncHandler {
  case HttpRequest(GET, uri, _, _, _)   ⇒ httpGet(uri)
  case HttpRequest(POST, uri, _, entity, _) ⇒ httpPost(uri, entity)
  case HttpRequest(HEAD, uri, _, _, _)  ⇒ httpHead(uri)
  case HttpRequest(DELETE, uri, _, _, _)⇒ httpDelete(uri)
  case _: HttpRequest   ⇒ Future.successful(
HttpResponse(StatusCodes.NotFound, entity = "Unknown resource!"))
}
  }

Is use of the spray DSL still encouraged or is it deprecated in favour of 
the above usage?

Thanks,
Allan

On Tuesday, January 20, 2015 at 1:10:56 PM UTC+1, rkuhn wrote:
>
> Hi Allan,
>
> there should in principle be a marshaller that wraps your Source into an 
> Entity, what is the exact error you are seeing?
>
> Regards,
>
> Roland
>
> 7 jan 2015 kl. 14:00 skrev Allan Brighton 
> >:
>
> Hi,
>
> I know how to do this now using the new akka-http core API, but how would 
> it work using the spray-like DSL?
> How can I complete an http get using a Future[Source[ByteString]]?
>
> import akka.http.model._
> import akka.http.server._
> ...
>   def route: Route =
> path("get") {
>   get {
> parameters('path, 'id ?) { (path, id) =>
>   respondWithMediaType(`application/octet-stream`) {
> complete {
>   val f: Future[Source[ByteString]] = ???
>   f.onComplete {
> case Success(source) => ...
> case Failure(ex) => ...
>   }
> }
>   }
> }
>   }
> }
>
> I would also be interested in an example going the other way: implementing 
> an http post that receives data from a stream.
>
> Thanks,
> Allan
>
>
>
> -- 
> >> Read the docs: http://akka.io/docs/
> >> Check the FAQ: 
> http://doc.akka.io/docs/akka/current/additional/faq.html
> >> Search the archives: https://groups.google.com/group/akka-user
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to akka-user+...@googlegroups.com .
> To post to this group, send email to akka...@googlegroups.com 
> .
> Visit this group at http://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
>
> *Dr. Roland Kuhn*
> *Akka Tech Lead*
> Typesafe  – Reactive apps on the JVM.
> twitter: @rolandkuhn
> 
>  
>

-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


Re: [akka-user] akka-http-experimental: Using the spray DSL: how to complete a route with a Source[ByteString]?

2015-01-20 Thread Roland Kuhn
Hi Allan,

there should in principle be a marshaller that wraps your Source into an 
Entity, what is the exact error you are seeing?

Regards,

Roland

> 7 jan 2015 kl. 14:00 skrev Allan Brighton :
> 
> Hi,
> 
> I know how to do this now using the new akka-http core API, but how would it 
> work using the spray-like DSL?
> How can I complete an http get using a Future[Source[ByteString]]?
> 
> import akka.http.model._
> import akka.http.server._
> ...
>   def route: Route =
> path("get") {
>   get {
> parameters('path, 'id ?) { (path, id) =>
>   respondWithMediaType(`application/octet-stream`) {
> complete {
>   val f: Future[Source[ByteString]] = ???
>   f.onComplete {
> case Success(source) => ...
> case Failure(ex) => ...
>   }
> }
>   }
> }
>   }
> }
> 
> I would also be interested in an example going the other way: implementing an 
> http post that receives data from a stream.
> 
> Thanks,
> Allan
> 
> 
> 
> -- 
> >> Read the docs: http://akka.io/docs/ 
> >> Check the FAQ: 
> >> http://doc.akka.io/docs/akka/current/additional/faq.html 
> >> 
> >> Search the archives: https://groups.google.com/group/akka-user 
> >> 
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to akka-user+unsubscr...@googlegroups.com 
> .
> To post to this group, send email to akka-user@googlegroups.com 
> .
> Visit this group at http://groups.google.com/group/akka-user 
> .
> For more options, visit https://groups.google.com/d/optout 
> .



Dr. Roland Kuhn
Akka Tech Lead
Typesafe  – Reactive apps on the JVM.
twitter: @rolandkuhn
 

-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


[akka-user] akka-http-experimental: Using the spray DSL: how to complete a route with a Source[ByteString]?

2015-01-07 Thread Allan Brighton
Hi,

I know how to do this now using the new akka-http core API, but how would 
it work using the spray-like DSL?
How can I complete an http get using a Future[Source[ByteString]]?

import akka.http.model._
import akka.http.server._
...
  def route: Route =
path("get") {
  get {
parameters('path, 'id ?) { (path, id) =>
  respondWithMediaType(`application/octet-stream`) {
complete {
  val f: Future[Source[ByteString]] = ???
  f.onComplete {
case Success(source) => ...
case Failure(ex) => ...
  }
}
  }
}
  }
}

I would also be interested in an example going the other way: implementing 
an http post that receives data from a stream.

Thanks,
Allan


-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.