Scala Lift Rest API响应HTML

Scala Lift Rest API响应HTML,scala,rest,lift,Scala,Rest,Lift,我目前正在使用Lift作为框架开发restapi。 大多数请求都使用Json作为返回类型,这很好: serve ("api" / "item" prefix { case _ :: Nil JsonGet _ => { if (checkKey(S.params("api_key").mkString)) Item.newItem(S.params("item_id").mkString, S.params("api_key").mkString) } })

我目前正在使用Lift作为框架开发restapi。 大多数请求都使用Json作为返回类型,这很好:

serve ("api" / "item" prefix {
    case _ :: Nil JsonGet _ => {
      if (checkKey(S.params("api_key").mkString)) Item.newItem(S.params("item_id").mkString, S.params("api_key").mkString)
    }
  })
现在我想添加一个函数,返回存储在mysql数据库中的纯html。所以基本上我想返回一个字符串给Resthelper。 我尝试了类似的方法,但没有编译:

serve {
    case "itemDesc" :: itemnum :: _ => {
      Item.getDescription(itemnum)
    }
  }
也许我很笨,但我在电梯的“食谱”里什么也找不到

更新:

serve { 
    case "itemDesc" :: AsInt(itemnum) :: _ XmlGet _ => { 
      Item.getDescription(itemnum) 
    } 
  }
我试图通过将html作为XML出售来愚弄lift。它编译了,但最后不起作用。 显然,不可能从RestHelper响应正常字符串


感谢您的帮助

您必须归还
框[liftreponse]

所以在这种情况下,它应该是
Full(明文响应(Item.getDescription(itemnum))


我还将添加来自
liftrespose->Box[liftrespose]
的隐式转换,您必须返回
Box[liftrespose]

serve {
    case "itemDesc" :: AsInt(itemnum) :: _ XmlGet _ => {
      Full(PlainTextResponse(Item.getDescription(itemnum), ("Content-Type" -> "text/html") :: Nil, 200))
    }
  }
所以在这种情况下,它应该是
Full(明文响应(Item.getDescription(itemnum))

我还将添加来自
liftreponse->Box[liftreponse]

serve {
    case "itemDesc" :: AsInt(itemnum) :: _ XmlGet _ => {
      Full(PlainTextResponse(Item.getDescription(itemnum), ("Content-Type" -> "text/html") :: Nil, 200))
    }
  }
答案是正确的。我必须将内容类型添加到PlainTextResponse才能解析HTML。有了这个功能,我可以让我的rest api像符咒一样工作,并添加一个函数,将内容类型为HTML的纯文本返回到浏览器


答案是正确的。我必须将内容类型添加到PlainTextResponse才能解析HTML。有了这个功能,我可以让我的rest api像一个符咒一样工作,并添加一个函数,将内容类型为HTML的纯文本返回到浏览器。

谢谢这项工作。但现在我遇到了一个问题,即Item.getDecri返回的HTMLOption(itemnum)函数作为html打印到浏览器中,而不是解释为html。似乎内容被包装在html预标记中。感谢这一点。但现在我遇到了一个问题,即Item.getDecription(itemnum)返回的html函数以html格式打印到浏览器中,而不是以解释的html格式打印。内容似乎被包装在html预标记中。哼,我的解决方案有点粗糙。请看这里:并扩展“已知子类”。在本例中,我会使用:XhtmlResponse。但问题是Item.getDescription返回字符串,这是围绕html解析器进行的,在这里很容易引入XSS。在本例中,您应该使用代码片段、Css转换和所有这些功能。Rest更适合获取json/xml或将一些数据/状态推送到服务器。哼,我觉得这是一个有点黑客式的解决方案。看这里:并扩展“已知子类”。在本例中,我会使用:XhtmlResponse。但问题是Item.getDescription返回字符串,这是围绕html解析器的,在这里很容易引入XSS。在本例中,您应该使用代码片段、Css转换和所有这些。Rest更适合获取json/xml或将一些数据/状态推送到服务器。