我正在编写基于Akka-HTTP的REST API.由于我是Akka和Scala的新手,我不确定在我的项目中组织代码的最佳方法是什么.我会有约.7个具有基本CRUD的不同实体.这意味着我将在API中拥有超过25条路线.我想保持路由根据它们逻辑关联的实体进行分组.有什么可能是实现这个目标的好方法?目前,我从GitHub上的一些项目中获取灵感,并将这些路线分为特征.我有一个主要特征,包括一些一般的东西,扩展指令和添加编组:
trait Resource extends Directives with JsonSupport{
...
}
Run Code Online (Sandbox Code Playgroud)
然后我有其他组织如下所示.
trait UserResource extends Resource{
def userRoutes:Route =
pathPrefix("authenticate") {
pathEndOrSingleSlash {
post {
entity(as[LoginRequest]) { request =>
...
}
}
}
}
} ~
pathPrefix("subscribe") {
pathEndOrSingleSlash {
post {
entity(as[UserSubscribeRequest]) { request =>
...
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有一个类定义异常处理程序,实例化一些帮助程序并将路由放在一起:
class Routes extends UserResource with OtherResource with SomeOtherResource{
... handlers definitions ...
... helpers ...
def allRoutesUnified: Route =
handleErrors {
cors() {
pathPrefix("api") {
authenticateOAuth2("api", PasswordAuthenticator) …Run Code Online (Sandbox Code Playgroud) 问题是调试器不仅会进入正确的源文件,还会进入由 Webpack 自动生成的 app.js 文件。我怎样才能防止它这样做?
我有以下设置:
我使用 .js 启动了 Vue.js 2 应用程序vue-cli。我的调试配置如下所示:
我还将这一行添加到"webpack.dev.conf.js"; devtool: "source-map",
我还将 app.js 文件添加到调试器配置中的异常中:
我使用npm run dev命令启动服务器,然后从 WebStorm 启动调试会话。问题依然存在。有任何想法吗 ?
我想尝试一下 cooursier 工件获取器,但我们正在使用 Artifactory 作为 Maven 和 ivy 存储库,我不知道如何在 coursier 中设置它。他们在文档中提供了这个 ENV 示例。多变的:
export COURSIER_REPOSITORIES="ivy2Local|central|sonatype:releases|jitpack|https://corporate.com/repo"
Run Code Online (Sandbox Code Playgroud)
如果我有带有以下 URL 的artifactory ivy 存储库:http://myivyrepo.tld/joint-ivy-releases它也有一些自定义模式:
[org]/[module]/[baseRev](-[folderItegRev])/[module]-[baseRev](-[fileItegRev])(-[classifier]).[ext]
Run Code Online (Sandbox Code Playgroud)
我如何使用 Coursier 进行设置?
我想使用 ZIO HTTP 上传文件,但它给出 413 代码,有效负载太大。
我不知道如何更改底层 Netty 服务器的配置来解决该问题。
任何帮助,将不胜感激。
我正在使用 angular2 http get 方法从 API 获取对象数组。我想要一个 observable 以 1 乘 1 的方式返回数组的元素,并且延迟很短,我该如何实现这一点?这就是我现在的代码:
return this.authHttp.get('fetch/arrayOfObjects',options).map(res => res.json());
Run Code Online (Sandbox Code Playgroud)
我不希望它像下面那样工作,因此结果由单个元素返回,延迟 1 秒:
var obs = Rx.Observable.create(function (observer) {
let dt = [1,2,3,4,5];
for(let e of dt){
setTimeout(() => {
observer.next(e);
}, 1000);
}
});
obs.subscribe(data=> console.log(data));
Run Code Online (Sandbox Code Playgroud)