在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
VelaSimple web framework to build restful app in Racket. Features
Installation
Quickstart #lang racket (require vela) (define index (lambda (req) (jsonify (hash 'msg "hello world!" )))) (define routers (urls (url "/" index "index"))) (app-run routers #:port 8000) Define HandlerThere two ways to define a handler. Use (define hello-handler (class handler% (define/public (get [id null]) (define req (get-field request this)) (jsonify (hash 'code 200 'msg "handle get" ))) (define/public (post) (jsonify (hash 'code 200 'msg "handle post" ))) (define/public (put id) (jsonify (hash 'code 200 'msg "handle put" ))) (define/public (delete id) (jsonify (hash 'code 200 'msg "handle delete" ))) (super-new))) Use simple function: (define index-handler (lambda (req) (jsonify (hash 'code 200 'msg "hello api" )))) or (define (index-handler req) (jsonify (hash 'code 200 'msg "hello api" ))) ResponseUse (jsonify (hash 'name "rosso" 'msg "hello world!")) Use plain text (render "hello world!") HTML template (require web-server/templates) ...(render (include-template "index.html")) URL routesUse (define routers (urls (url "/" index-handler "handler with function"))) Use (define api-v1 (url-group "/api/v1"))(define routers (urls ... (api-v1 (url "/hellos" hello-handler "hello-list/post") (url "/hello/:id" hello-handler "hello-put/delete/get")))) Use middlewareUse middleware in (require vela web-server/http/request-structs);; handler(define (index req) (jsonify "hello!"));; middlewares(define (request-middleware req) (jsonify "hi!"))(define (response-middleware req resp) (jsonify "bye!"));; url groups(define req-urls (url-group "/req" #:on-request (list request-middleware)))(define resp-urls (url-group "/resp" #:on-response (list response-middleware)))(define req-and-resp-urls (url-group "/both" #:on-request (list request-middleware) #:on-response (list response-middleware)));; routers(define middles-test-routers (urls (url "/req" index #:on-request (list request-middleware) "request-middleware") (url "/resp" index #:on-response (list response-middleware) "response-middleware") (req-urls (url "/test" index "test-req")) (resp-urls (url "/test" index "test-resp")) (req-and-resp-urls (url "/test" index "test-req-and-resp")))) request middleware should set a request argument is request context. response middleware must set request and response arguments. Customize HeadersYou need require (require (only-in web-server/http/request-structs make-header))(define my-headers (list ... (make-header #"Access-Control-Allow-Origin" #"*") (make-header #"Access-Control-Allow-Methods" #"PUT, POST, GET, DELETE, PATCH, OPTIONS"))) Customize ResponseUse (define (my-custom-rsp xml-doc) (response #:headers my-headers #:mime #"application/xml" #:body xml-doc)) examplesVery simple apps build with Vela in the examples folder. LicenseLicensed under the MIT License. |
请发表评论