网页设计网站值得推荐,主机一键wordpress,织梦网站版权,做app网站的软件有哪些内容吗对比了几家大厂的音乐API的接口 这家相对规范些
现在开始从零开始 net6敏捷开发对接 入库吧
关键技术工具和思维
1 json 生成类 2 分析类 规划表设计3 sqlsuger codefirst 生成表 4 封装get post 连接5 类映射automapper6 sqlsuger 插入数据 1 json 生成类
宇宙 第 一的…对比了几家大厂的音乐API的接口 这家相对规范些
现在开始从零开始 net6敏捷开发对接 入库吧
关键技术工具和思维
1 json 生成类 2 分析类 规划表设计3 sqlsuger codefirst 生成表 4 封装get post 连接5 类映射automapper6 sqlsuger 插入数据 1 json 生成类
宇宙 第 一的编辑器生成 相应的类 using miniAPI.Model;namespace miniAPI.Models
{public class QQtoplistDTO{ public class DataQQtoplistDTO{public ListToplist topList { get; set; }}public class Toplist{public DateTime CreateDate { get; set; } public int id { get; set; }public int listenCount { get; set; }public string picUrl { get; set; }public ListTopSonglist songList { get; set; }public string topTitle { get; set; }public int type { get; set; }}//public class Songlist//{// public string singername { get; set; }// public string songname { get; set; }//}}public class OutputparaT{private int _code 500;public int code{get { return _code; }set { _code value; }}public int subcode { get; set; }private string _msg ;public string msg{get { return _msg; }set { _msg value; }}public string message { get; set; }public int _default { get; set; }//public Data data { get; set; }public T data { get; set; }}}2 分析类 规划表设计 排行榜单 维度和songlist的明细 3 codefirst 生成表
sqlsuger 爽得不要不要的 4 封装get post 连接
使用 httpClientFactory {private IHttpClientFactory _httpClientFactory;private readonly Cachelper _cachelper;private readonly IMapper _mapper;public MusicApibyqqController(IMapper mapper, IHttpClientFactory httpClientFactory, Cachelper cachelper){_mapper mapper;_httpClientFactory httpClientFactory;_cachelper cachelper;} [HttpGet][Route(createmusicapibyqq)]public async Taskstring CreateMusicApibyqqIndex(){var client _httpClientFactory.CreateClient();var param new { };string jsonData System.Text.Json.JsonSerializer.Serialize(param);StringContent paramContent new StringContent(jsonData);var logOutResponse await client.GetAsync(url);string resultStr await logOutResponse.Content.ReadAsStringAsync();OutputparaDataQQtoplistDTO response System.Text.Json.JsonSerializer.DeserializeOutputparaDataQQtoplistDTO(resultStr);Console.WriteLine($url:{url}, 成功);}else{Console.WriteLine($url:{url}, 失败);}}; return 同步完毕 toplist: listToplist.Count TopSonglist: listTopSonglist.Count;
}
5 类映射automapper using AutoMapper;
using miniAPI.Model;
using static miniAPI.Models.QQtoplistDTO;namespace miniAPI.Config
{/// summary/// Dto的映射配置/// /summarypublic class AutoMapperConfigs : Profile{public AutoMapperConfigs(){//从 Toplist》 TopMusiclistCreateMapToplist, TopMusiclist(); }}
}
注册 //Automapper映射
builder.Services.AddAutoMapper(typeof(AutoMapperConfigs));
映射 使用 _mapper.Map(temptoplist, tempTopMusiclist);
6 插入数据 foreach (var temptoplist in response?.data?.topList){ TopMusiclist tempTopMusiclist new TopMusiclist(); _mapper.Map(temptoplist, tempTopMusiclist);tempTopMusiclist.CreateDate DateTime.Now;tempTopMusiclist.codeid temptoplist.id;listToplist.Add(tempTopMusiclist);foreach (var tempsongList in temptoplist.songList){tempsongList.codeidtemptoplist.id; listTopSonglist.Add(tempsongList);} } SqlSugarHelper.addtoplist(listToplist);SqlSugarHelper.addtopSonglist(listTopSonglist); Db.Insertable(listToplist).ExecuteCommand();
开始使用数据吧 据说API不能商用 QAQ 但放出来干啥QAQ