2016-02-23 198 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'類 –