/*
Copyright (c) [2023] [squallzhao]
fountain is licensed under APACHE LICENSE, VERSION 2.0.
You can use this software according to the terms and conditions of the APACHE LICENSE, VERSION 2.0.
You may obtain a copy of APACHE LICENSE, VERSION 2.0 at: https://www.apache.org/licenses/LICENSE-2.0
*/
package microservice
import net.http.*
import std.io.*
import encoding.url.*
import std.fs.*
import encoding.json.*
import microservice.web.*
import microservice.registry.*
import microservice.resttemplate.*
import microservice.web.http11.*
import microservice.web.socket.*
import microservice.web.server.*
import microservice.web.server.reqres.*
import microservice.config.*
import microservice.web.codecs.*
import microservice.web.handler.*
import microservice.exception.*
import microservice.common.*
/**
java -jar -Deureka.server.response-cache-update-interval-ms=1 eureka-server.jar
*/
/*
"output_type": "executable",
"output_type": "dynamic",
*/
class BootServlet <: IServlet{
public func service(req:HttpServletRequest,res:HttpServletResponse){
println("BootServlet called, Param a="+req.getParameter("a"))
println("BootServlet called, Header NAME="+req.getAttribute("NAME"))
var root = ResponseJsonObject()
root.put("code", 0)
root.put("msg", "success")
var data = ResponseJsonObject()
data.put("uid","123456")
root.put("data",data)
res.setBody(root)
}
}
class BootPostServlet <: IServlet{
public func service(req:HttpServletRequest,res:HttpServletResponse){
var input: RequestJsonObject = RequestJsonObject(req.getBodyObject())
println("post input parameter: "+input.getString("abc"))
var root = ResponseJsonObject()
root.put("code", 0)
root.put("msg", "success")
var data = ResponseJsonObject()
data.put("uid","123456")
root.put("data",data)
res.setBody(root)
}
}
class NoMappingHandler <: IExceptionHandler{
public func handle(req: HttpServletRequest, res: HttpServletResponse, e: Exception): Unit{
res.setBody("No URL Match")
res.setStatus(500)
}
}
func microbootServer(){
let micro = MicroBootApplication()
micro.getRouter().get("/fo", BootServlet())
micro.getRouter().post("/fo2", BootPostServlet())
GlobalExceptionHandler.add(ExceptionClassify.NOMAPPING_FIND_EXCEPTION, NoMappingHandler())
micro.run()
println("do get call response="+micro.getRestTemplate().getForEntity("http://hello/fo","a=123"))
println("do post call response="+micro.getRestTemplate().postForEntity("http://hello/fo2","{\"abc\":\"zhao\"}"))
}
main(): Unit{
println("hello microbootServer")
microbootServer()
Common.sleeps(1000000)
}