基于akka-http搭建restfull框架
1.scala开发环境介绍
2.scala插件的demo模板介绍
3.akka-http提供demo研究
4.添加路由机制解析
package org.netsharp.rest import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.{ContentTypes, HttpEntity}
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer import scala.io.StdIn object WebServer { def main(args:Array[String]):Unit={ implicit val system = ActorSystem("netsharp")
implicit val materializer = ActorMaterializer()
implicit val executionContext = system.dispatcher val userRoute = path("user"){
get{
complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Say user to akka-http</h1>"))
}
} val orderRoute = path("order"){
get{
complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Say order to akka-http</h1>"))
}
} val customerRoute = path("customer"){
get{
complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Say customer to akka-http</h1>"))
}
} val routes =
pathPrefix("v1") {
userRoute ~ orderRoute ~ customerRoute
} ~ path("")(getFromResource("public/index.html")) val bindingFuture = Http().bindAndHandle(routes,"localhost",80) println(s"Server online at http://localhost:80/\nPress RETURN to stop...") StdIn.readLine() bindingFuture.flatMap(_.unbind())
.onComplete(_=>system.terminate())
}
}
4.通过变量解析路径
package org.netsharp.rest import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.{ContentTypes, HttpEntity}
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer import scala.io.StdIn object WebServer { def main(args:Array[String]):Unit={ implicit val system = ActorSystem("netsharp")
implicit val materializer = ActorMaterializer()
implicit val executionContext = system.dispatcher val xroute=path(Segment/Segment/Segment){(v,domain,operation)=>
get{
complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, s"version:$v;domain:$domain;operation:$operation"))
}
} val bindingFuture = Http().bindAndHandle(xroute,"localhost",80) println(s"Server online at http://localhost:80/\nPress RETURN to stop...") StdIn.readLine() bindingFuture.flatMap(_.unbind())
.onComplete(_=>system.terminate())
}
}
a.sbt启动项目:run
b.浏览器中输入地址:http://localhost/v1/user/create
c.显示为:version:v1;domain:user;operation:create
5.路由机制的多级变量
package org.netsharp.rest import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.{ContentTypes, HttpEntity}
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer import scala.io.StdIn object WebServer { def main(args:Array[String]):Unit={ implicit val system = ActorSystem("netsharp")
implicit val materializer = ActorMaterializer()
implicit val executionContext = system.dispatcher val xroute=path(Segments){xs=>
get{
complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, xs.toString()))
}
} val bindingFuture = Http().bindAndHandle(xroute,"localhost",80) println(s"Server online at http://localhost:80/\nPress RETURN to stop...") StdIn.readLine() bindingFuture.flatMap(_.unbind())
.onComplete(_=>system.terminate())
}
}
a.sbt启动项目:run
b.浏览器中输入地址:http://localhost/v1/user/create
c.显示为:List(v1, user, create)
6.akka-http与actor结合
基于akka-http搭建restfull框架的更多相关文章
- 基于maven从头搭建springMVC框架
0.准备工作 首先将eclipse和需要的插件准备好,例如maven插件,spring IDE插件. 1.建立maven下的webapp项目 1.新建一个maven项目,类型为webapp,如下图 2 ...
- 基于Docker的TensorFlow机器学习框架搭建和实例源码解读
概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...
- Java之基于Eclipse搭建SSH框架(下)
在上篇博客里,我简介了Tomcat滴配置与Struts2滴搭建,假设对这个还不会滴童鞋去看一下我滴上篇博客<Java之基于Eclipse搭建SSH框架(上)>.今天我们接着上篇博客滴内容. ...
- 搭建web框架手册(一)
昨天听完永康对EASYUI的介绍后终于明白了优秀的UI框架就是第一生产力,过去自己一直沉浸在后端代码中,完全忽视了前端的生产力交互,总觉得界面漂亮就是生产力,其实大错特错,真正的具有高效生产力的界面其 ...
- 脚手架快速搭建springMVC框架项目
apid-framework脚手架快速搭建springMVC框架项目 rapid-framework介绍: 一个类似ruby on rails的java web快速开发脚手架,本着不重复发明轮 ...
- 手工搭建ABP框架(1) - Web项目
为了防止不提供原网址的转载,特在这里加上原文链接: http://www.cnblogs.com/skabyy/p/7295533.html ABP是 ASP.NET Boilerplate Proj ...
- IDEA搭建SSMM框架(详细过程)
IDEA搭建SSMM框架(详细过程) 相关环境 Intellij IDEA Ultimate Tomcat JDK MySql 5.6(win32/win64) Maven (可使用Intellij ...
- Eclipse中使用Maven搭建SSM框架
Eclipse中不使用Maven搭建SSM框架:https://www.cnblogs.com/xuyiqing/p/9569459.html IDEA中使用Maven搭建SSM框架:https:// ...
- 第n次搭建 SSM 框架
什么说第 N 次搭建SSM框架呢? 刚学习java的时候,搭建 SSM 框架想做一个个人项目之类的,后来没搭起来,也就拖延了,进入公司之后,接触的第一个项目就是SSM的,模仿了一下,也能搭个简简单单的 ...
随机推荐
- ROS Qt Creator Plug-in wiki
在Qt中配置ros工程. 环境: ubuntu16.04: ros kinetic: Qt5.7 参考网址: https://ros-industrial.github.io/ros_qtc_plug ...
- <Vector Calculus>(by Paul C, Matthews) Notes
现在流行用Exterior Caculus, 所以个人觉得Matthews这本书有点过时了. 想学Vector Calculus的话,推荐<Vector Calculus, Linear Alg ...
- Bootstrap 插件收集
Bootstrap-Mutilselect 将下拉选项扩展支持多选以及多种选择方式 http://davidstutz.de/bootstrap-multiselect/ Bootstrap Sel ...
- MySQL数据库的库表基本操作
一.库操作 1.创建业务数据库 DDL 数据库命名规则:区分大小写.唯一性.不能使用关键字如 create select.不能单独使用数字 语法:CREATE DATABASE 数据库名; CREAT ...
- SpringBoot入门篇--关于properties和yml两种配置文件的一些事情
我们在使用SpringBoot这个框架的时候都一定使用或者说是见到过application.properties或者是application.yml,经不住有人就会问这俩文件到底是什么情况,其实说白了 ...
- java 性能测试框架工具-junitperf
性能测试工具 对于 Java 开发者来说,要去学习性能测试工具未免很麻烦. 但有时候会有性能测试的需求. junitperf junitperf 就是一款为 Java 开发者设计的性能测试框架,如果你 ...
- python初接触
浑浑噩噩的过了3年多大学生涯,就借此开始下定决心好好的学好一门技术,为心中那个游戏梦而努力. 正式开课的第一天(也算不的吧,毕竟昨天老师也和我们讲了python课程的大纲内容).自我总结下今天的内容吧 ...
- (Python基础)2 or 3?
对于大部分初学者来说,该选择Python2.x还是Python3.x?我想这个问题都是普遍初学者的疑问.我的回答当然是学Python3.x的啦.因为下面有段官方原话是这样子说的 ,大概意思呢就是Pyt ...
- python 处理 https链接 socket报错 链接https
// socket 链接 https 有问题 得去看看ssl文档 用法 import socketimport ssl def https_test(url): proto = "http& ...
- 学习笔记:AngularJs
站点: http://www.angularjs.cn/ angularjs中文社区 http://www.jb51.net/article/60733.htm AngularJS内置指令 基本页 ...