码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【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
    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 - 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中定义的包的指定版本
    在这里插入图片描述

  • 相关阅读:
    DNS中有哪些值得学习的优秀设计
    差模电感和共模电感的差别
    云课五分钟-03第一个开源游戏复现-贪吃蛇
    libusb 源码移植到工程项目中,使用CMake编译
    ESP32设备驱动-VCNL4010光传感器驱动
    [word] 如何在word中插入地图? #学习方法#其他
    【JAVA springframework.http】如何发送HTTP请求
    Mysql集群及高可用-Mysql高可用MHA9
    线程同步—— 生产者与消费者、龟兔赛跑、双线程打印
    标准地图获取及使用
  • 原文地址:https://blog.csdn.net/qq_42816425/article/details/127056090
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号