【Swift-Vapor服务器】0001、Swift-Vapor入门-环境搭建
【Swift-Vapor服务器】系列
【Swift-Vapor服务器】0001、Swift-Vapor入门-环境搭建
技术:Swift5.7、Vapor4.0、服务器、本地服务器、Vapor基本使用
运行环境:
Swift5.7 + Xcode14 + MacOS12.6 + Docker Desktop + Azure Data Studio
参考下载工具链接
Homebrew、Vapor 、Postman、Azure Data Studio 、DBeaver 、Docker Desktop
Vapor入门-环境搭建
- 参考下载工具链接
- 主要讲解了以下内容
- 安装Vapor
- 首次运行Vapor项目出现警告
- 1. 设置
- 2. 再次启动 - 警告消失
- 检查8080端口是否正在使用
- 杀死8080端口 并且再次检查8080端口是否有正在运行
- 查看Vapor原理 分析
- 1. Package.swift
- 2.查看Vapor项目
- 3.查看Vapor源码 - Sources - `Controllers`、`Migrations`、`Models`
- 4.查看Vapor单元测试 - `AppTests.swift`
- 5.查看Docker组合文件 - `docker-compose.yml` 、`Dockerfile`
- 6.Package.resolved 包解析
主要讲解了以下内容
安装HomeBrew、安装Vapor、自行安装Postman(测试API)、自行安装Azure Data Studio - (Postgres数据库)
创建了一个Vapor项目
使用Postman访问了Vapor的默认路由和hello路由
安装Vapor
- 安装
Homebrew
- MacOS的包管理器
终端指令/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装 vapor
终端指令brew install vapor
- 检查Vapor是否安装成功
终端指令vapor --help
出现下图表示安装成功
4. 创建Vapor项目
终端指令 - 其中XY-Vapor-API
表示项目名称vapor new XY-Vapor-API
name: XY-Vapor-API Would you like to use Fluent? (--fluent/--no-fluent) y/n> y fluent: Yes db: Postgres (Recommended) Would you like to use Leaf? (--leaf/--no-leaf) y/n> n leaf: No 这上面几句表示 1.是否使用Fluent 。Fluent表示Orm。它是一个对象关系映射器 - 项目使用 2.使用那个数据库 - 我这里使用Postgress 3. 是否使用叶子 - 不使用 - 叶子表示一个模板语言。就像制作一个网页一样
- 使用Xcode打开
vapor xocde
首次运行Vapor项目出现警告
原因是 表示 没有给该方案设置自定义工作目录
[ WARNING ] No custom working directory set for this scheme, using /Users/liyuhong/Library/Developer/Xcode/DerivedData/XY-Vapor-API-godrxlkftzjdvncdelssjgmebuut/Build/Products/Debug
1. 设置
2. 再次启动 - 警告消失
检查8080端口是否正在使用
通过终端 输入
lsof -i:8080
liyuhong@liyuhongdeMac-mini XY-Vapor-API % lsof -i:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Run 9360 liyuhong 12u IPv4 0x61be8aab9b1e8631 0t0 TCP localhost:http-alt (LISTEN)
杀死8080端口 并且再次检查8080端口是否有正在运行
通过终端的指令 kill
kill -9 PID号
杀死端口
查看Vapor原理 分析
1. Package.swift
是我们的SPM清单
它是一个Swift包管理器
Vapor大量使用它
2.查看Vapor项目
是没有Xcode的项目文件
那是因为它像一个包裹
3.查看Vapor源码 - Sources - Controllers
、Migrations
、Models
Controllers 提供了一个待办事项的清单
在控制器内部对逻辑进行分类,而不是将它全部放在一个文件中
Migrations 和数据库一起使用 、所以我们将进行所谓的数据迁移
这就是准备我们的数据库,这意味着在我们的数据库创建新表
Models - 这就是我们数据库中数据的模型。
Configure - 我们有配置功能
这里只有一个功能,它配置我们将使用的数据库
它添加了我们迁移,并运行routes函数,然后routes函数是 我们所有的路由。都是如此不同的端点的地方。它们将被命中
我们将通过我们的iOS应用程序请求。
如果我们访问hello 那么就会执行hello函数
4.查看Vapor单元测试 - AppTests.swift
Vapor没有默认测试。 而我们创建的项目提供了一个可以使用的单元测试.
这里单元测试就是启动应用程序。我们要去设置路线
我们不会对这个系列进行单元测试
因为我们有Docker组合文件。
5.查看Docker组合文件 - docker-compose.yml
、Dockerfile
这配置了我们的API以运行并让数据库在DockerFile文件中运行。
这里用于实际创建Docker映像的内容。老实说。我不知道这两个文件的所有内容。
6.Package.resolved 包解析
使我们项目中在Package Swift中定义的包的指定版本
【Swift-Vapor服务器】0001、Swift-Vapor入门-环境搭建相关推荐
- Linux入门-环境搭建、基本指令以及权限讲解
这次我给大家介绍Linux系统,究竟怎么更快上手Linux,怎么学习Linux?接下来我给大家分享一下干货. Linux入门 环境搭建 Linux指令 基本指令 ls命令 cd指令 安装软件的指令 r ...
- Hadoop入门·环境搭建
Hadoop入门·环境搭建 1 步骤 硬件环境准备 资源下载 环境部署 2 分布式集群环境部署 2.1 硬件环境准备 本案例中使用三台服务器(仅作为学习案例),分别为Hadoop102,Hadoop1 ...
- 普歌-云言团队-Spring Boot入门:环境搭建Spring Boot HelloWorld
Spring Boot入门:环境搭建Spring Boot HelloWorld 前言:SpringBoot 是来简化Spring应用开发, 约定大于配置, 去繁从简, just run就能创建一个独 ...
- NodeJS入门--环境搭建 IntelliJ IDEA
NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...
- ksweb如何安装php5.6_Android端的服务器容器 KSWEB PHP+MySQL环境搭建及应用
1. KSWEB ksweb是 一个Android端的服务器容器.有 2.7.2 及 2.8.2 版本,可以用下面链接下载: http://bbs.xiaomi.cn/thread-9690863-1 ...
- NS3 入门环境搭建
NS3 入门环境搭建3.30版本 环境:Windows10 + Ubuntu18.04双系统 环境:Windows10 + Ubuntu18.04双系统 1.添加源 sudo vim /etc/apt ...
- Linux入门---环境搭建(腾讯云服务器)、XShell远程登陆Linux
Linux环境搭建和远程登陆Linux Linux环境搭建 XShell远程登陆Linux Linux环境搭建 主要有三种方式: 1.直接安装在物理机上,但是由于Linux桌面使用起来非常不友好,不推 ...
- 网狐荣耀需要什么服务器系统,网狐荣耀环境搭建教程
服务器环境搭建 安装数据库 数据库 直接NEXT 到 数据库引擎配置的时候身份验证模式选择混合 设置好自己的密码后(可以后面添加也行) next 到安装完成 打开SQL Server 配置管 ...
- Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)
0613 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.1.1 项目介绍 4.1.2 开发环境搭建 ①安装Linux系统.XSHELL.XFTP.Visual Stu ...
最新文章
- 在 Linux 上用 dust 代替 du更直观
- H01-P1201-0.6B金升阳高压模块
- c++带成员指针使用
- python 实现81个人脸关键点实时检测
- pythonunicode和str_python的str,unicode对象的encode和decode方法
- c#在线程中打开类似msn的消息提示窗口
- Golang 反射操作整理
- JavaWeb之JSP技术总结
- php-5.6.2-Win32-VC11-x64.zip+ apache2.4.10 +php_xdebug-2.2.5-5.6-vc11-x86_64.dll+mysql5.6安装配置
- 微信群怎么添加二狗机器人?
- [Android] Windows 7下 Android studio 安装 Genymotion 来调试 Android 遇到的问题总结
- 什么是P2P和它的应用
- 机器学习入门09 - 特征组合 (Feature Crosses)
- oracle删除不了同义词,删除同义词,百科如何删除同义词项
- tolower c语言,tolower_字符串 | Strings_C_参考手册_非常教程
- 自动适配跳转电脑PC端和手机WAP端
- 2018清明假期旅游预测报告:全国游客人次预计破亿
- 计算平均成绩 (10分)
- mybatis-plus使用updateById更新数据不生效,需要使用lambdaUpdate
- 笔记本连接WiFi后浏览器不能上网,但是连接手机热点就可以。问题解决!!!
热门文章
- 百度地图发布交通物流建设方案 共筑智慧物流新基建
- hexo加Github搭建个人博客(一、二)
- optaplanner学习笔记(三)为规划问题建模
- python如何写生日快乐说说_生日发朋友圈怎样写好?生日发的说说,祝自己生日快乐的话...
- 奋斗吧,程序员——第十五章 去年今日此门中,人面桃花相映红
- 芯源立创EDA训练营——无刷电机驱动
- 固态继电器基础知识和工作原理
- 荷兰商业银行调查显示,公众对加密货币的兴趣未来将翻倍
- Java开发常见面试题详解(JVM)_2
- 基于梵·高《向日葵》的 图像阈值处理专题(二值处理、反二值处理、截断处理、自适应处理及Otsu方法)【Python-Open_CV系列(六)】