5

Spray.io はコンテンツ タイプを低レベルで定義しているため、着信リクエストのコンテンツ タイプを単純に参照するにはどうすればよいですか?

画像が PUT される短い例を次に示します。

      put {
        entity(as[Array[Byte]]) { data =>
          complete{
            val guid = Image.getGuid(id)
            val fileExtension = // match a file extension to content-type here
            val key = "%s-%s.%s" format (id, guid, fileExtension )
            val o = new Image(key, contentType, data)
            Image.store(o)
            val m = Map("path" -> "/client/%s/img/%s.%s" format (id, guid, fileExtension))
            HttpResponse(OK, generate(m))
          }
        }
      }

上記のコードから、コンテンツ タイプを抽出する簡単な方法は何ですか? それを使用して、適切な にパターンマッチすることができますfileExtension。ご協力いただきありがとうございます。

4

2 に答える 2

3

headerValueからのディレクティブを使用できると思いますHeaderDirectives

import spray.http.HttpHeaders._
headerValue(_ match {
   case `Content-Type`(ct) => Some(ct)
   case _ => None
}) { ct =>
   // ct has type ContentType
   // other routes here
}

スプレー1.0/1.1用です。

于 2013-05-07T06:40:03.647 に答える