当前位置: 首页 > news >正文

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

对比了几家大厂的音乐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=》 TopMusiclistCreateMap<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

相关文章:

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

对比了几家大厂的音乐API的接口 这家相对规范些 现在开始从零开始 net6敏捷开发对接 入库吧 关键技术工具和思维 1 json 生成类 2 分析类 规划表设计3 sqlsuger codefirst 生成表 4 封装get post 连接5 类映射automapper6 sqlsuger 插入数据 1 json 生成类 宇宙 第 一的…...

使用gpt对对话数据进行扩增,对话数据扩增,数据增强

我们知道一个问题可以使用很多方式问&#xff0c;但都可以使用完全一样的回答&#xff0c;基于这个思路&#xff0c;我们可以很快的扩增我们的数据集。思路就是使用chatgpt或者gpt4生成类似问题&#xff0c;如下&#xff1a; 然后我们可以工程化这个过程&#xff0c;从而快速扩…...

算法练习工程1.2

题目要求&#xff1a; * 问题标题&#xff1a;删除有序数组中的重复项&#xff1a; * 题意说明&#xff1a; * 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。 * …...

数字IC流片经历有多重要?怎样才能有流片机会?

都说拥有流片经验可以显示你在实际项目中的实践能力和对整个设计流程的了解程度&#xff0c;流片经历的重要性不言而喻。 什么是芯片流片 像流水线一样通过一系列工艺步骤制造芯片&#xff0c;这就是流片。在芯片制造过程中一般有两段时间可以叫作流片。 流片&#xff1a;英…...

fontfaceobserver 第三方字体加载优化方案

fontfaceobserver 第三方字体加载优化方案 1. github地址 https://github.com/bramstein/fontfaceobserver 2. 基础使用方法 const font new FontFaceObserver(My Family, {weight: 400 });font.load().then(function () {console.log(Font is available); }, function ()…...

laravel安装composer依赖

一.问题描述 拉取的新项目没有依赖 项目根目录没有vendor目录 报错 二.安装composer,拉取依赖 1.如果没有composer先去下载 官网地址:Packagist / Composer 中国全量镜像 我的博客安装composer:composer最新版本安装_荒-漠的博客-CSDN博客 2.进入项目根目录cmd或者在项目中…...

问题聚集度Hive SQL

问题聚集度&#xff1a;最小的分母占比&#xff0c;贡献最多的分子占比&#xff0c;即小规模贡献大问题。 selectcity_name,user_id,rf_type,deal_ord_cnt,sale_amt,rf_ord_cnt,rf_amt,rf_ra,rf_amt_ra,rf_all,ord_cnt_all,rf_gx,ord_cnt_gx,del_gx,row_number() over(partiti…...

Windows11右键菜单

刚开始使用Windows11时&#xff0c;新的右键菜单用起来很不习惯。 记录一下修改和恢复Windows11的右键菜单的方法。 1.Win11切换到旧版右键菜单&#xff1a; 方法&#xff1a;WinR打开CMD&#xff0c;运行下面的命令行 添加注册列表重启Windows资源管理器 reg add "HKC…...

篇十四:观察者模式:对象间的通知与更新

篇十四&#xff1a;“观察者模式&#xff1a;对象间的通知与更新” 设计模式是软件开发中的重要知识&#xff0c;观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;用于在对象间建立一种一对多的依赖关系&#xff0c;当一个对象的状态发生…...

Hadoop知识点总结

1. MapReduce中Shuffle的执行流程是什么样的&#xff1f; - 阶段&#xff1a;Map端Shuffle、Reduce端Shuffle - 功能&#xff1a;分区、排序、分组 Map端Shuffle 分区(Partition)&#xff1a;在这个阶段&#xff0c;Map任务会调用分区器&#xff0c;根据Key的Hash值取模&a…...

相关搜索量激增10000%!“芭比周边”产品火爆亚马逊!

据外媒报道&#xff0c;芭比娃娃是今年夏天最热的话题。今年7月份&#xff0c;“芭比娃娃”是亚马逊上搜索最多的词。第二季度&#xff0c;Shopify上的芭比娃娃销量激增了56%。知名玩具制造商美泰&#xff08;Mattel&#xff09;预计&#xff0c;受电影的推动&#xff0c;在未来…...

C高级第四讲

1、思维导图 2、写一个shell函数&#xff0c;获取用户的uid和gid并使用变量接收 #!/bin/bash function get_id() {uidid -u ubuntugidid -g ubuntu } get_id echo "uid:$uid" echo "gid:$gid"运行结果 3、排序 冒泡排序 /* ------------------------…...

Idea小操作

Idea操作 idea提取内容构成一个方法 idea提取内容构成一个方法...

【计算机网络】socket编程

文章目录 1. 网络通信的理解2.进程PID可以取代端口号吗&#xff1f;3. 认识TCP协议4. 认识 UDP协议5. socket编程接口udp_server.hpp的代码解析socket——创建 socket 文件描述符Initserver——初始化1.创建套接字接口&#xff0c;打开网络文件bind——绑定的使用 2.给服务器指…...

2023华为OD机试真题 Python 实现【寻找最大价值的矿堆/深度优先搜索】

前言 本题使用Python解答,如果需要Java代码,请点击以下链接:点我 题目 我们规定,0表示空地,1表示银矿、2表示金矿,矿堆表示由相邻的金矿或银矿连接形成的地图。 银矿价值是1 ,金矿价值是2 ,你的目标是找出地图中最大价值的矿堆,并且输出该矿堆的价值 示例1 输入:…...

【Java面试】Nacos自动注册原理实现以及服务注册更新并如何保存到注册表

文章目录 Nacos自动注册原理实现服务注册更新并如何保存到注册表 Nacos自动注册原理实现 完整流程 我们知道SpringBoot提供了挂载点的方式来帮助我们的类完成自动注入。 Nacos再META-INF的spring.factories这个文件中添加了自己需要自动注入的Bean对象。 叫做NacosServiceRegi…...

linux 手动编译安装 pkg-config 步骤

1. 下载源码 Index of /releases (pkg-config.freedesktop.org) 2. 解压 并 进入解压后的文件夹 3. 运行配置文件 ./configure 错误解决办法&#xff1a;在linux中使用 ./configure 时报错 4. 编译、 自检、 安装 make make check make install 5. 安装完成后查看版本号…...

【MongoDB】数据库、集合、文档常用CRUD命令

目录 一、数据库操作 1、创建数据库操作 2、查看当前有哪些数据库 3、查看当前在使用哪个数据库 4、删除数据库 二、集合操作 1、查看有哪些集合 2、删除集合 3、创建集合 三、文档基本操作 1、插入数据 2、查询数据 3、删除数据 4、修改数据 四、文档分页查询 …...

【JVM】是如何管理内存的

文章目录 JVM 内存管理 模型JVM内存管理示例解析jvm 常见优化手段 JVM 内存管理 模型 以下是JVM内存管理的详细图示&#xff1a; ------------------------------------------------------ | Java 运行时数据区 | ------…...

进程与线程、线程创建、线程周期、多线程安全和线程池(ThreadPoolExecutor)

目录 进程与线程线程和进程的区别是什么&#xff1f;线程分两种&#xff1a;用户线程和守护线程线程创建四种方式run()和start()方法区别&#xff1a;为什么调用 start() 方法时会执行 run() 方法&#xff0c;为什么不能直接调用 run() 方法&#xff1f;Runnable接口和Callable…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...