C# 后端入门(一)

最近打算编写服务器,客户端用U3D,后端语言打算用C# ,本文为后端入门系列文章,记录一下踩坑过程

创建C# WebApi 工程,

在这里插入图片描述
在这里插入图片描述
取消Https勾选
在这里插入图片描述

这样项目创建成功

项目目录结构

这是新建的项目结构,重点关注Controllers.当我们选择webAPI 创建项目的时候,它已经帮我们创建一个demo,我们直接运行看看
在这里插入图片描述
运行后,会自动打开Swagger,在里面可以看到,里面定义了一个WeatherForecast接口,执行一下,成功接口成功返回信息
在这里插入图片描述

创建自己的接口

在上面创建项目里,WeatherForecastController 就是定义接口的脚本

using Microsoft.AspNetCore.Mvc;

namespace WebApplication1.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet(Name = "GetWeatherForecast")]
        public IEnumerable<WeatherForecast> Get()
        {
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }
}

我们仿照这个脚本创建自己的接口,在Controllers文件夹下创建 MyTestController控制器,右键Controllers =》添加=》=》控制器
在这里插入图片描述
添加后名称修改MyTestController,然后对脚本作一下修改,如下

using Microsoft.AspNetCore.Mvc;

namespace MyWebApi.Controllers
{
    [Route("api/[controller]/[Action]")]
    [ApiController]
    public class MyTestController : ControllerBase
    {   
        [HttpGet]

        public string TestHellWorld()
        {
            return "hell World!";
        }

        [HttpGet]
        public string TestFunction_2(string name, string msg)
        {
            return $"{name}:{msg}";
        }
    }
}

[HttpGet] 特性 定义改接口是GET方法访问
[Route(“api/[controller]/[Action]”)] 特性,这里其实是定义路由地址,也就是API的访问地址
return 这里的就是返回改接口的数据

我们来运行一下项目
在这里插入图片描述
这里看见Swagger 已经能看见刚刚我们自己定义的接口TestHellWorld和TestFunction_2,然后我们用Swagger 请求一下接口,看看数据返回
在这里插入图片描述
数据返回 hell World! 没问题

创建U3D工程,请求接口

U3D 这边简单带过,创建一个空工程,简单挂一个请求接口代码运行就行了,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class TestGet : MonoBehaviour
{
    const string url_1 = "http://localhost:5107/api/MyTest/TestHellWorld";
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(RequestData_Get(url_1));
    }

    IEnumerator RequestData_Get(string url)
    {
        UnityWebRequest webRequest =  UnityWebRequest.Get(url);

        yield return webRequest.SendWebRequest();

        if(webRequest.error != null)
        {
            Debug.Log(webRequest.error);
            Debug.Log($"请求{url}接口出错");
        }
        else
        {
            string data = webRequest.downloadHandler.text;
            Debug.Log(data);
        }
    }
}

请求接口的地址是在Swagger 上面有标识
在这里插入图片描述
运行U3D 之前,记得运行后端项目,不然U3D请求不了接口

接口数据打印出来,没问题,请求成功
在这里插入图片描述

部署到IIS服务器上

开启IIS服务

win+R =>输入control => 回车确认
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按上图打勾,这里需要注意,点开 应用程序开发功能
在这里插入图片描述
这样配置,然后确认修改就行了。搜索IIS,打开
在这里插入图片描述

发布后端程序

回到VS编辑器,右键项目发布,发布完成之后会生成一个文件夹,我们把文件夹部署到iis上面
打开iis => 右键网站 => 添加网站
在这里插入图片描述
物理路径选择 刚刚发布后的文件路径,端口号自定义,我这里是8090
在这里插入图片描述
点击确认,部署就完成了

部署U3D

返回到Unity, 切换到webGl 平台,打包。
打包成功后,把文件夹部署到iis 上,具体请参考上面部署后端代码,流程一样.

至此,整个发布的流程就已经完成,下面打开U3D网站,就可以请求到接口数据了。
但是运行U3D之后,会发现报错和请求不了接口数据的情况,我会在下一篇文章中展示并解决。
链接: C# 后端入门(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值