小编j3d*_*j3d的帖子

NuGet - 如何在MonoDevelop/Xamarin Studio上配置包恢复

阅读使用的NuGet不承诺包到源代码控制,我明白我应该添加.nuget文件夹到我的项目,以使构建过程中包恢复...和阅读准备的NuGet一个混帐回购协议我已经明白我可以删除NuGet.exe,并NuGet.config和让IDE通过设置自动下载它们DownloadNuGetExetrueNuGet.targets.

好吧,我有点困惑,因为1)Xamarin Studio既不下载NuGet.exe也不下载NuGet.config... 2).nuget文件夹根本不需要,因为人们可以在解决方案资源管理器上发出命令Restore NuGet Packages并且无论如何都要恢复包.

话虽如此,在Xamarin Studio/MonoDevelop上配置包恢复的正确方法是什么?

monodevelop nuget xamarin-studio

6
推荐指数
1
解决办法
6087
查看次数

Play 2.1或更高版本中的并发性

我已经阅读了一些关于如何在Play中处理并发的教程,并找到了一些例子:

异步工作

import scala.concurrent.{ExecutionContext, future}

def sendEmailAsync(from: String, to: String, subject: String, body: String) = {
  import ExecutionContext.Implicits.global // in scala.concurrent

  future {
    EmailHelper.sendEmail(from, to, subject, body)
  }
}
Run Code Online (Sandbox Code Playgroud)

预定的工作

import play.api.libs.concurrent.{Akka, Execution}

def sendEmailOnSchedule(from: String, to: String, subject: String, body: String) = {
  import scala.concurrent.duration._
  import Execution.Implicits.defaultContext // in play.api.libs.concurrent

  Akka.system.scheduler.scheduleOnce(10 seconds) {
    EmailHelper.sendEmail(from, to, subject, body)
  }
}
Run Code Online (Sandbox Code Playgroud)

好吧,我有点困惑......第一个例子使用,scala.concurrent.ExecutionContext.Implicits.global而第二个例子使用play.api.libs.concurrent.Execution.Implicits.defaultContext.为什么?有人能解释一下幕后发生的事吗?

scala playframework executioncontext

6
推荐指数
1
解决办法
434
查看次数

如何控制Swagger为类型生成模型/模式的方式

我能够通过Play设置Swagger并尝试Swagger-ui ......我必须说它真的很棒.

使用ApiOperation,ApiImplicitPara等记录我的控制器的操作很容易,并且按预期工作.

然而,由于我对Swagger的了解有限,我在为类型的隐式参数定义模式时遇到了问题body.我想要映射到隐式参数的类如下所示:

@ApiModel(value "User", description = "Represents an user")
class User private(private var json: JsValue) {

  private def setValue(key: JsPath, value: JsValue) = {
    value match {
      case JsNull => json.transform(key.json.prune).map(t => json = t)
      case _ => json.transform((__.json.update(key.json.put(value)))).map(t => json = t)
    }
  }

  def asJson = json

  @ApiModelProperty(value = "User's id", dataType = "String", required = false)
  def id_= (v: Option[String]) = setValue((__ \ 'id), Json.toJson(v)) …
Run Code Online (Sandbox Code Playgroud)

scala swagger swagger-ui swagger-play2

6
推荐指数
1
解决办法
2289
查看次数

Typesafe配置:如何创建条件配置

Typesafe Config是否允许创建条件配置?

我需要根据另一个键的值设置一个键:

ssl = true

#if ssl == true
host = "https://localhost"
#else
host = "http://localhost"
#end if
Run Code Online (Sandbox Code Playgroud)

当然上面的代码不起作用......我只想说明我正在尝试做什么.

typesafe-config

6
推荐指数
1
解决办法
1758
查看次数

如何使用日志中间件

下面是我使用 Labstack 的 Echo 用 Go 编写的 Web 应用程序的入口点:

package main

import (
    "github.com/labstack/echo"
    mw "github.com/labstack/echo/middleware"
)

func main() {
    controller := controllers.NewUserController(getSession())

    app := echo.New()

    app.Use(mw.Logger())
    app.Use(mw.Recover())
    app.SetDebug(true)

    app.Post("/users", controller.CreateUser)
    app.Get("/users", controller.ListUsers)
    app.Get("/users/:id", controller.GetUser)
    app.Patch("/users/:id", controller.UpdateUser)
    app.Delete("/users/:id", controller.DeleteUser)

    app.Run(":8000")
}
Run Code Online (Sandbox Code Playgroud)

如何重用在Echo应用程序中实例化的日志中间件?我试过这个:

包控制器

import (
    "net/http"

    "github.com/labstack/echo"
    "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
)

type (
    UserController struct {
        session *mgo.Session
    }
)

func NewUserController(s *mgo.Session) *UserController {
    return &UserController{s}
}

func (userController UserController) CreateUser(context *echo.Context) error {
    user := &models.User{}

    if …
Run Code Online (Sandbox Code Playgroud)

go go-echo

6
推荐指数
1
解决办法
8857
查看次数

如何合并两个AST?

我正在尝试实现一个合并某些源代码的不同版本的工具.给定相同源代码的两个版本,想法是解析它们,生成相应的抽象源树(AST),最后将它们合并到单个输出源中,保持语法一致性 - 词法分析器和解析器是ANTLR的问题:如何跳过多行注释.

我知道有一流的ParserRuleReturnScope帮助...但getStop()getStart()始终返回null :-(

这是一个片段,说明了我如何修改我的perser来打印规则:

parser grammar CodeTableParser;

options {
    tokenVocab = CodeTableLexer;
    backtrack = true;
    output = AST;
}

@header {
    package ch.bsource.ice.parsers;
}

@members {
    private void log(ParserRuleReturnScope rule) {
        System.out.println("Rule: " + rule.getClass().getName());
        System.out.println("    getStart(): " + rule.getStart());
        System.out.println("    getStop(): " + rule.getStop());
        System.out.println("    getTree(): " + rule.getTree());
    }
}

parse
    : codeTabHeader codeTable endCodeTable eof { log(retval); }
    ;

codeTabHeader
    : comment CodeTabHeader^ { log(retval); …
Run Code Online (Sandbox Code Playgroud)

java parsing antlr abstract-syntax-tree lexer

5
推荐指数
1
解决办法
575
查看次数

如何在反序列化Json时修复重载的apply()方法的不明确引用

给定以下需要对JSON进行序列化/反序列化的案例类...

import play.api.libs.json
import play.api.libs.functional.syntax._

trait MyTrait(s1: String, s2: String)

case class MyClass(s1: String, s2: String) extends MyTrait {

  def this(t: MyTrait) = this(t.s1, t.s2)
}

object MyClass {

  def apply(t: MyTrait) = new MyClass(t)

  implicit val myClassJsonWrite = new Writes[MyClass] {
    def writes(c: MyClass): JsValue = {
      Json.obj(
        "s1" -> c.s1,
        "s2" -> c.s2
      )
    }
  }

  implicit val myClassJsonRead = (
    (__ \ 's1).read[String] ~
    (__ \ 's2).read[String]
  )(MyClass.apply _)
}
Run Code Online (Sandbox Code Playgroud)

...我总是收到以下错误消息:

[error] /home/j3d/Projects/test/app/models/MyClass.scala:52: ambiguous reference to overloaded …
Run Code Online (Sandbox Code Playgroud)

scala playframework-2.0

5
推荐指数
1
解决办法
1781
查看次数

如何在单页面应用程序中使用SecureSocial

我正在将我的Pl​​ay 2应用程序转换为SPA,我正在试图弄清楚如何仍然使用SecureSocial进行身份验证.

我正在删除所有HTML模板(SecureSocial用于发送电子邮件的模板除外)并修改我的控制器以仅提供JSON响应.

是否可以阻止SecureSocial呈现HTML并让我的应用程序以JSON格式交换身份验证数据?是否有任何解释此主题的示例或教程?我已经谷歌搜索了几天,无法为像我这样的新手找到任何有用或至少可以理解的信息.

json playframework securesocial single-page-application

5
推荐指数
1
解决办法
470
查看次数

如何在scala中的单词后截断字符串

鉴于以下字符串......

"localhost:9000/one/two/three"
Run Code Online (Sandbox Code Playgroud)

我希望在单词之后将其截断two并获取

"localhost:9000/one/two"
Run Code Online (Sandbox Code Playgroud)

我已经实现了这些方法truncateBefore并且truncateAfter像这样:

def truncateBefore(s: String, p: String) = {
  s.substring(s.indexOf(p) + p.length, s.length)
}

def truncateAfter(s: String, p: String) = {
  s.substring(0, s.indexOf(p) + p.length)
}
Run Code Online (Sandbox Code Playgroud)

这些方法起作用并返回预期结果:

scala> truncateAfter("localhost:9000/one/two/three", "two")
res1: String = "localhost:9000/one/two"

scala> truncateBefore("localhost:9000/one/two/three", "two")
res2: String = "/three"
Run Code Online (Sandbox Code Playgroud)

在scala中有更好的方法吗?最好用正则表达式?

regex scala

5
推荐指数
2
解决办法
2136
查看次数

REST API:用于身份验证违规的HTTP状态代码

我正在实现REST API,而auth模块基于JWT.以下是我为其定义的HTTP状态代码:

  • 没有身份验证令牌的请求:401 UNAUTHORIZED
  • 身份验证令牌已过期:410 UNAUTHORIZED
  • 身份验证令牌不包含必需的声明:403 FORBIDDEN
  • Auth违反(即令牌被篡改):???

在令牌篡改的情况下,我应该使用什么HTTP状态代码?401(未经授权或417(EXPECTATION_FAILED)?

rest http

5
推荐指数
1
解决办法
981
查看次数