首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在finatra中使用camelCase设置响应

如何在finatra中使用camelCase设置响应
EN

Stack Overflow用户
提问于 2020-04-28 06:58:07
回答 1查看 195关注 0票数 0

我需要用finatra在camelCase中返回一个json响应,但默认情况下它是在snake_case中。到目前为止,我发现我需要使用ObjectMapper,但是我不能理解一旦我创建了它,我应该把它传递到哪里。举个例子会很有帮助。这就是我所拥有的:

代码语言:javascript
复制
import com.twitter.finagle.http.Request
import com.twitter.finatra.http.Controller

class myTargetingController extends Controller {
    val endpoint = "http://....."

    get(s"$endpoint/?") { request: Request =>
        // what do I do with it?
        // val objectMapper = ScalaObjectMapper.builder.camelCaseObjectMapper 
        response.ok.json(myObject)
    }
}

=

代码语言:javascript
复制
import com.twitter.finagle.{Service, SimpleFilter}
import com.twitter.finagle.http.{ Request, Response}
import com.twitter.finatra.http.routing.HttpRouter
import com.twitter.finatra.http.{HttpServer}
import com.twitter.finatra.http.filters.CommonFilters
import com.twitter.util.Future

object MyServerApp extends MyServer

class MyServer extends HttpServer {
override protected def configureHttp(router: HttpRouter) {
    router
        .filter[CommonFilters]
        .add[CorsFilter, MyController]
    }
}

附言:我对Scala非常非常陌生

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-28 08:42:57

从评论中跟进

定义自定义ObjectMapperModule

代码语言:javascript
复制
class CamelCaseModule extends ScalaObjectMapperModule {

    override val propertyNamingStrategy: PropertyNamingStrategy =
      new PropertyNamingStrategy.UpperCamelCaseStrategy

    override def additionalMapperConfiguration(mapper: ObjectMapper): Unit = {
      mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true)
 }
}

覆盖服务器的默认Jackson模块

代码语言:javascript
复制
override def jacksonModule = new CamelCaseModule

确保你有

代码语言:javascript
复制
"com.twitter" %% "finatra-jackson" % yourFinatraVersion % "test"

在你的build.sbt

以及您导入的

代码语言:javascript
复制
import com.fasterxml.jackson.databind.{DeserializationFeature, Module, ObjectMapper, PropertyNamingStrategy}
import com.twitter.finatra.jackson.modules.ScalaObjectMapperModule

在本地进行了测试,看起来很有效希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61469866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档