【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

  1. 安装Homebrew - MacOS的包管理器
    终端指令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安装 vapor
    终端指令
brew install vapor
  1. 检查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. 是否使用叶子 - 不使用 - 叶子表示一个模板语言。就像制作一个网页一样
  1. 使用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 - ControllersMigrationsModels

Controllers 提供了一个待办事项的清单
在控制器内部对逻辑进行分类,而不是将它全部放在一个文件中
Migrations 和数据库一起使用 、所以我们将进行所谓的数据迁移
这就是准备我们的数据库,这意味着在我们的数据库创建新表
Models - 这就是我们数据库中数据的模型。
Configure - 我们有配置功能
这里只有一个功能,它配置我们将使用的数据库
它添加了我们迁移,并运行routes函数,然后routes函数是 我们所有的路由。都是如此不同的端点的地方。它们将被命中
我们将通过我们的iOS应用程序请求。
如果我们访问hello 那么就会执行hello函数

4.查看Vapor单元测试 - AppTests.swift

Vapor没有默认测试。 而我们创建的项目提供了一个可以使用的单元测试.
这里单元测试就是启动应用程序。我们要去设置路线
我们不会对这个系列进行单元测试
因为我们有Docker组合文件。

5.查看Docker组合文件 - docker-compose.ymlDockerfile

这配置了我们的API以运行并让数据库在DockerFile文件中运行。
这里用于实际创建Docker映像的内容。老实说。我不知道这两个文件的所有内容。

6.Package.resolved 包解析

使我们项目中在Package Swift中定义的包的指定版本

【Swift-Vapor服务器】0001、Swift-Vapor入门-环境搭建相关推荐

  1. Linux入门-环境搭建、基本指令以及权限讲解

    这次我给大家介绍Linux系统,究竟怎么更快上手Linux,怎么学习Linux?接下来我给大家分享一下干货. Linux入门 环境搭建 Linux指令 基本指令 ls命令 cd指令 安装软件的指令 r ...

  2. Hadoop入门·环境搭建

    Hadoop入门·环境搭建 1 步骤 硬件环境准备 资源下载 环境部署 2 分布式集群环境部署 2.1 硬件环境准备 本案例中使用三台服务器(仅作为学习案例),分别为Hadoop102,Hadoop1 ...

  3. 普歌-云言团队-Spring Boot入门:环境搭建Spring Boot HelloWorld

    Spring Boot入门:环境搭建Spring Boot HelloWorld 前言:SpringBoot 是来简化Spring应用开发, 约定大于配置, 去繁从简, just run就能创建一个独 ...

  4. NodeJS入门--环境搭建 IntelliJ IDEA

    NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下 ...

  5. ksweb如何安装php5.6_Android端的服务器容器 KSWEB PHP+MySQL环境搭建及应用

    1. KSWEB ksweb是 一个Android端的服务器容器.有 2.7.2 及 2.8.2 版本,可以用下面链接下载: http://bbs.xiaomi.cn/thread-9690863-1 ...

  6. NS3 入门环境搭建

    NS3 入门环境搭建3.30版本 环境:Windows10 + Ubuntu18.04双系统 环境:Windows10 + Ubuntu18.04双系统 1.添加源 sudo vim /etc/apt ...

  7. Linux入门---环境搭建(腾讯云服务器)、XShell远程登陆Linux

    Linux环境搭建和远程登陆Linux Linux环境搭建 XShell远程登陆Linux Linux环境搭建 主要有三种方式: 1.直接安装在物理机上,但是由于Linux桌面使用起来非常不友好,不推 ...

  8. 网狐荣耀需要什么服务器系统,网狐荣耀环境搭建教程

    服务器环境搭建 安装数据库 数据库  直接NEXT  到  数据库引擎配置的时候身份验证模式选择混合  设置好自己的密码后(可以后面添加也行)  next 到安装完成 打开SQL Server 配置管 ...

  9. Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)

    0613 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.1.1 项目介绍 4.1.2 开发环境搭建 ①安装Linux系统.XSHELL.XFTP.Visual Stu ...

最新文章

  1. 在 Linux 上用 dust 代替 du更直观
  2. H01-P1201-0.6B金升阳高压模块
  3. c++带成员指针使用
  4. python 实现81个人脸关键点实时检测
  5. pythonunicode和str_python的str,unicode对象的encode和decode方法
  6. c#在线程中打开类似msn的消息提示窗口
  7. Golang 反射操作整理
  8. JavaWeb之JSP技术总结
  9. php-5.6.2-Win32-VC11-x64.zip+ apache2.4.10 +php_xdebug-2.2.5-5.6-vc11-x86_64.dll+mysql5.6安装配置
  10. 微信群怎么添加二狗机器人?
  11. [Android] Windows 7下 Android studio 安装 Genymotion 来调试 Android 遇到的问题总结
  12. 什么是P2P和它的应用
  13. 机器学习入门09 - 特征组合 (Feature Crosses)
  14. oracle删除不了同义词,删除同义词,百科如何删除同义词项
  15. tolower c语言,tolower_字符串 | Strings_C_参考手册_非常教程
  16. 自动适配跳转电脑PC端和手机WAP端
  17. 2018清明假期旅游预测报告:全国游客人次预计破亿
  18. 计算平均成绩 (10分)
  19. mybatis-plus使用updateById更新数据不生效,需要使用lambdaUpdate
  20. 笔记本连接WiFi后浏览器不能上网,但是连接手机热点就可以。问题解决!!!

热门文章

  1. 百度地图发布交通物流建设方案 共筑智慧物流新基建
  2. hexo加Github搭建个人博客(一、二)
  3. optaplanner学习笔记(三)为规划问题建模
  4. python如何写生日快乐说说_生日发朋友圈怎样写好?生日发的说说,祝自己生日快乐的话...
  5. 奋斗吧,程序员——第十五章 去年今日此门中,人面桃花相映红
  6. 芯源立创EDA训练营——无刷电机驱动
  7. 固态继电器基础知识和工作原理
  8. 荷兰商业银行调查显示,公众对加密货币的兴趣未来将翻倍
  9. Java开发常见面试题详解(JVM)_2
  10. 基于梵·高《向日葵》的 图像阈值处理专题(二值处理、反二值处理、截断处理、自适应处理及Otsu方法)【Python-Open_CV系列(六)】