# api-simple-web-demo **Repository Path**: light4j/api-simple-web-demo ## Basic Information - **Project Name**: api-simple-web-demo - **Description**: light4j 入门示例代码之简单的web服务 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-03-23 - **Last Updated**: 2022-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 介绍 light-4j的web服务器实现,它提供两个API端点,并提供来自外部文件夹/public的静态内容。 它可以是一个单独的javascript页面应用程序,包含一些图像,字体等。 - /api/text returns "Hello World" - /api/json returns {"message":"Hello World"} - / returns index.html ### 开始使用 ##### 在安装了JDK8和Maven的情况下进行本地编译。 因为公共文件夹在本地运行时必须是绝对路径,所以在构建服务器之前,你需要在项目文件夹之外为静态文件创建一个文件夹, 并更新src/main/resources/config/webserver。yml指定该绝对文件夹的基变量。 如果你想使用src/main/resources/public文件夹作为你的静态文件文件夹,你可以将base设 置为“/home/steve/networknt/light-example-4j/webserver/api-simple-web/src/main/resources/public”, 这是我桌面上的绝对文件夹。它在文件中被注释掉了。 您可以在这个文件夹中创建一个静态的index.html,或者将一个SPA部署到这个文件夹中。 配置更改之后,让我们构建并启动服务器。 ``` git clone https://gitee.com/light4j/api-simple-web-demo.git cd api-simple-web-demo mvn clean install java -jar target/webserver-0.1.0.jar ``` 使用这个独立的服务器只是为了测试或调试,最终我们必须创建一个docker容器并外部 化网站,这样你就可以在不改变容器的情况下更新网页或javascript应用程序。 ##### Create Docker Image docker文件夹中有两个dockerfile,一个是基于Alpine Linux的,一个是基于RedHat Linux的。 build.sh可以构建docker镜像并将它们发布到docker hub。 ``` ./build.sh 0.1.0 ``` 该脚本将创建docker镜像并发布到networknt docker帐户。您不需要自己运行脚本, 只需从docker hub中提取映像即可。 ##### Docker方式. 在使用docker运行服务器之前,请为你的静态网站创建一个文件夹。下面的命令使用~/public 作为静态站点文件夹。 您可以在这个文件夹中创建一个静态的index.html,或者将一个SPA部署到这个文件夹中。 ``` docker run -d -p 8443:8443 -v ~/website:/website networknt/api-simple-web-0.1.0 ``` ##### 外部化配置 这两个端点在配置中不受OAuth2保护。所以端点可以自由访问。如果你想改变外部文件夹中的配置文件, 你可以在/tmp/config这样的文件夹中创建这些文件,然后将这个文件夹映射到容器/config文件夹中, 以覆盖默认配置。 ``` docker run -d -v /tmp/config:/config -v /tmp/website:/website -p 8443:8443 networknt/api-simple-web-0.1.0 ``` ### 测试 测试接口服务(默认没有启用443,使用8080访问)。 JSON endpoint: ``` http://localhost:8080/api/json https://localhost:8443/api/json ``` TEXT endpoint: ``` http://localhost:8080/api/text https://localhost:8443/api/text ``` WEB: ``` http://localhost:8080/ https://localhost:8443/ ```