.net几行代码音乐API各排行榜 热搜 入库

news2024/10/6 10:41:38

对比了几家大厂的音乐API的接口 这家相对规范些

现在开始从零开始 net6敏捷开发对接 入库吧 

关键技术工具和思维

  1. 1 json 生成类 
  2. 2 分析类 规划表设计
  3. 3 sqlsuger codefirst 生成表  
  4. 4 封装get post 连接
  5. 5 类映射automapper
  6. 6 sqlsuger 插入数据

1 json 生成类  

宇宙 第 一的编辑器生成 相应的类

using miniAPI.Model;

namespace miniAPI.Models
{
    public class QQtoplistDTO
    { 

        public class DataQQtoplistDTO
        {
            public List<Toplist> 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 List<TopSonglist> 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 Outputpara<T>
    {
        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 Task<string> 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();
                Outputpara<DataQQtoplistDTO> response = System.Text.Json.JsonSerializer.Deserialize<Outputpara<DataQQtoplistDTO>>(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的映射配置
    /// </summary>
    public class AutoMapperConfigs : Profile
    {
        public AutoMapperConfigs()
        {
            //从 Toplist=》 TopMusiclist
            CreateMap<Toplist, 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.codeid=temptoplist.id; 
                            listTopSonglist.Add(tempsongList);
                        } 
                    } 
                    SqlSugarHelper.addtoplist(listToplist);
                    SqlSugarHelper.addtopSonglist(listTopSonglist); 
    Db.Insertable(listToplist).ExecuteCommand();

开始使用数据吧   据说API不能商用 QAQ  但放出来干啥QAQ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/846918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻量级低代码平台,快速生成应用程序及不同类型的CRM系统

私有化部署的低代码快速开发平台 无需代码或通过少量代码就可以快速生成应用程序的开发平台。 这套低代码管理后台平台可以支持多种企业应用场景&#xff0c;包括但不限于 OA系统、 CRM系统、 ERP系统、项目管理系统、进销存系统等。无论是懂技术的开发人员还是不懂技术的业务…

多通道振弦数据记录仪应用于桥梁监测

随着城市化进程的加快&#xff0c;城市桥梁的数量不断增加。对于城市交通的保障作用&#xff0c;桥梁的重要性不言而喻。而为了保障桥梁的安全&#xff0c;桥梁监测的重要性也越来越受到人们的重视。在桥梁监测中&#xff0c;多通道振弦数据记录仪的应用得到了广泛的认可和应用…

算法通关村第五关——n数之和问题解析

1. 两数之和问题 力扣第1题就是两数之和问题&#xff0c;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那两个整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一…

聚观早报|美团创始人王慧文退出;马斯克将直播与扎克伯格笼斗

【聚观365】8月8日消息 美团创始人王慧文退出马斯克将在X上直播与扎克伯格笼斗蚂蚁微尘故事余承东微博透露鸿蒙4新进展华为出资15亿成立地产公司 美团创始人王慧文退出 据国家企业信用信息公示系统显示&#xff0c;北京光年之外科技有限公司在近期完成工商变更&#xff0c;创…

Hadoop理论及实践-HDFS读写数据流程(参考Hadoop官网)

NameNode与DataNode回顾 主节点和副本节点通常指的是Hadoop分布式文件系统&#xff08;HDFS&#xff09;中的NameNode和DataNode。 NameNode&#xff08;主节点&#xff09;&#xff1a;NameNode是Hadoop集群中的一个核心组件&#xff0c;它负责管理文件系统的命名空间和元数据…

uni——不规则tab切换(skew)

案例展示 案例代码 <!-- 切换栏 --> <view class"tabBoxs"><view class"tabBox"><block v-for"(item,index) in tabList" :key"index"><view class"tabItem":class"current item.id&…

Vue 本地应用 记事本 v-on v-model v-for使用

vue当中如何生成列表结构&#xff1f;使用的指令是v-for&#xff0c;同时要有一个可以生成列表的数据&#xff0c;常用的是数组。记事本里面的内容并不复杂&#xff0c;所以这里使用字符串数组就行了。 获取用户输入的内容使用绑定v-model&#xff0c;双向数据绑定&#xff08…

黑马头条项目学习--Day1: 环境搭建、SpringCloud微服务(注册发现、网关)

Nacos注册发现、网关 a. 项目介绍b. app登录1) 需求分析2) 表结构分析3) 手动加密&#xff08;md5随机字符串&#xff09;4) 用户端微服务搭建5) 功能实现6) app网关7) 网关校验jwt8) 前端集成, 配置nginx a. 项目介绍 业务说明 技术栈说明 [外链图片转存失败,源站可能有防盗…

基于MSP430 红外避障-遥控小车(电赛必备 附项目代码)

文章目录 一、硬件清单二、模块连接三、程序设计四、项目源码 项目环境&#xff1a; 1. MSP430F55292. Code Composer Studio3. 蓝牙调试助手 项目简介&#xff1a; 小车可分为3种工作模式&#xff0c;每种工作模式都会打印在OLED显示屏上&#xff0c;通过按键转换工作模式。 模…

RocketMQ 5.x broker注册到Nameserve源码分析

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 RocketMQ版本 5.1.0 背景 入口 这里源码入口我们就从broker启动开始查看吧&#xff0c;然后慢慢到NameServer 由于不知道具体代码在哪&#xff0c;所以我们就…

Three.js阴影

目录 Three.js入门 Three.js光源 Three.js阴影 使用灯光后&#xff0c;场景中就会产生阴影。物体的背面确实在黑暗中&#xff0c;这称为核心阴影&#xff08;core shadow&#xff09;。我们缺少的是落下的阴影&#xff08;drop shadow&#xff09;&#xff0c;即对象在其他…

汇总当下的AI绘画模型

AI绘画从今年过年那阵儿兴起&#xff0c;到现在(2023.8)已经半年过去了&#xff0c;涌现了很多风格迥异的模型&#xff0c;我在这里简单汇总一些。 一、写实人物类 1.1 AWPortrait 比较拟真的人物肖像 1.2 XXMix_9realistic 2.5D人物模型&#xff0c;因为画面带有一丝油画的…

从零开始学习 Java:简单易懂的入门指南之API、String类(八)

常用API 1.API1.1API概述1.2如何使用API帮助文档 2.String类2.1String类概述2.2String类的特点2.3String类的构造方法2.4创建字符串对象两种方式的区别2.5字符串的比较2.5.1号的作用2.5.2equals方法的作用 2.6用户登录案例2.6.1案例需求2.6.2代码实现 2.7遍历字符串案例2.7.1案…

【SQL应知应会】表分区(四)• Oracle版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 分区表 • Oracle版 前言一、分区表1.什么是表分区…

深入大B行业,什么是最有力的敲门砖?

引言&#xff1a;2023上半年&#xff0c; 能扛过外部环境各种变化&#xff0c; 这样的科技公司就很不容易了。 【全球云观察 &#xff5c; 热点关注】在当前后疫情时代下&#xff0c;全球经济增长处于的低增长期&#xff0c;这对所有科技企业的发展带来了直接影响。 有业内人…

【ChatGPT 指令大全】怎么使用ChatGPT来辅助学习英语

在当今全球化的社会中&#xff0c;英语已成为一门世界性的语言&#xff0c;掌握良好的英语技能对个人和职业发展至关重要。而借助人工智能的力量&#xff0c;ChatGPT为学习者提供了一个有价值的工具&#xff0c;可以在学习过程中提供即时的帮助和反馈。在本文中&#xff0c;我们…

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题

解决VScode远程服务器时opencv和matplotlib无法直接显示图像的问题 1、本方案默认本地已经安装了VScode与MobaXterm2、在服务器端3、在本地端安装MobaXterm4、测试5、opencv显示测试&#xff08;测试过程中需保持MobaXterm开启的状态&#xff09;6、 matplotlib显示测试&#x…

【Linux】操作系统与冯诺依曼体系——深度解析(软硬件层面)

​ 前言 大家好吖&#xff0c;欢迎来到 YY 滴 Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过Linux的老铁&#xff0c;从软硬件层面向大家介绍操作系统与冯诺依曼体系&#xff0c; 主要内容含&#xff1a; 欢迎订阅 YY滴Linux专栏&#xff01;更多干货持…

如何找到优质跨境电商补单资源

做跨境电商的卖家都知道&#xff0c;补单&#xff08;测评&#xff09;可以帮助他们的产品快速提升销量、评论&#xff0c;获得排名&#xff0c;打造爆款&#xff0c;但是现在市面上有大量的测评机构资源是烂资源&#xff0c;机刷&#xff0c;黑卡等一系列不法手段层出不穷&…

润和软件人才评定报名系统正式上线,培养openEuler专业生态人才

8月3日&#xff0c;江苏润和软件股份有限公司&#xff08;以下简称“润和软件”&#xff09;自主研发的人才评定报名系统正式上线运行&#xff0c;欢迎大家咨询报名&#xff01; 2022年10月&#xff0c;润和软件申请并通过了openEuler开源社区理事会评审&#xff0c;成为openE…