2016-02-23 200 views
0

我想从This Rest API 消耗一些资源但似乎我需要一些授权。而实际上作为一个初学者,我不知道如何使用喷雾来访问此端点。端点要求认证Rest API Spray

喷雾客户端的一个简单的例子:

val pipeline = sendReceive ~> unmarshal[GuildwarsApiResult] 

    val responseFuture = pipeline { 
    Get("https://api.guildwars2.com/v2/commerce/listings/46741") 
    } 

谢谢!

回答

0

我最近看到很多人想要使用GuilWar API的问题。是不是最近创建的?

根据您的问题,您需要指定带有API令牌的HTTP头,如针对POST请求的documentation中所述。对于GET请求,你应该在URL传递令牌。

This显示了如何创建和使用自定义http头。

object ApiTokenHeader extends ModeledCustomHeaderCompanion[ApiTokenHeader] { 
    def renderInRequests = false 
    def renderInResponses = false 
    override val name = "Authorization" 
    override def parse(value: String) = Try(new ApiTokenHeader(value)) 
} 
final class ApiTokenHeader(token: String) extends ModeledCustomHeader[ApiTokenHeader] { 
    def renderInRequests = false 
    def renderInResponses = false 
    override val companion = ApiTokenHeader 
    override def value: String = "Bearer " + token 
} 

,并用它作为

val responseFuture = pipeline { 
    Get("https://api.guildwars2.com/v2/commerce/listings/46741").withHeaders(ApiTokenHeader("55eec993e046c63bc8f486ee")) 
    } 

我没编译它,但它应该工作。

+0

对于承载的令牌,喷雾具有'spray.http.OAuth2BearerToken'类 –