世界快资讯:用ChatGPT写一个REST API!

2023-04-10 15:20:16 来源: 51CTO技术栈

译者 | 朱先忠

策划 | 云昭


(资料图)

51CTO读者成长计划社群招募,咨询小助手(微信号:TTalkxiaozhuli)

一、简介

ChatGPT是由人工智能研究中心OpenAI创建的尖端自然语言处理模型,OpenAI公司是由埃隆·马斯克、萨姆·奥特曼和格雷格·布罗克曼共同创办的。该模型于2018年6月发布,并不断进行修改和升级,最新版本GPT-3(https://openai.com/blog/gpt-3-apps)于2020年发布。时下最火的ChatGPT是基于GPT-3模型开发而成,并于2022年发布。ChatGPT中的“GPT”代表“Generative Pre-trained Transformer”,即生成式预训练转换器,这是一种新式复杂的深度学习架构。ChatGPT本质上使用大量的文本数据来“学习”人类语言的复杂性,从而使之能够创建常常无法与人类相区分的回复结果。ChatGPT技术基于一种称为转换器(Transformer)的神经网络,非常适合自然语言处理应用。

ChatGPT的一个关键特性是,它能够根据您在聊天框中给出的各种提示创建高质量的输出。你得到的反应感觉就像是人类产生的。使用期间,您还可以指定请求的条件。该模型是在大量的文本语料库基础上训练的,因此它可以依靠广泛的数据来回答问题、提供信息或参与由其神经网络生成的随意对话。记忆是至关重要的;然而,ChatGPT并非完美无缺。当面临超出模型知识范围的建议时,模型可能会提供不合逻辑或不合适的答复。ChatGPT的使用率有时很高;因此,有时系统可能会限制您发送的查询数量。

由于本文的主要目的是为各位提供一个全面而实际的示例,从而说明如何使用ChatGPT为REST API生成代码;因此,现在让我们首先了解一下REST API是什么。REST API是一种web服务,允许两个计算机系统通过遵循一组标准化规则在互联网上进行通信。它遵循REST体系结构,该体系结构以其无状态和客户端-服务器的特性而闻名。REST API的工作原理是客户端使用特定的URL和HTTP方法(如GET、POST、PUT或DELETE)向服务器发送请求,服务器用包含请求的数据或指示请求的操作是否成功的消息进行响应。REST API在现代web和移动应用程序中广泛使用,因为它们提供了在系统之间交换数据的标准化和高效方法。您通常可以通过阅读文档来了解有关特定API的更多信息。其中,有些API是商业性的,通常有不同的定价计划。这也意味着,发出有关API请求是需要特定Bearer令牌的。

现在,我们来关注最有趣的部分,即在ChatGPT的帮助下,我们将尝试使用C#语言来创建一个功能齐全的REST API来实现学生信息的管理。

二、创建API

在本节中,我们将让ChatGPT编写一个用于管理学生的功能完备的REST API,包括创建、删除和修改学生记录等功能。要做到这一点,我们应该先建立一个“学生控制器(StudentsController)”,该控制器将具有API端点,还有一个“学生类(Student)”,该类将具有所需的字段,如Id、名称和年龄等。我们在这里的唯一工作是生成逻辑性及结构良好的查询,随着我们逐步构建API,这些查询将变得越来越复杂。让我们开始吧。

三、用C#语言编写用于管理学生的REST API

下面是一个用C#管理学生的RESTful API示例。此API将使用HTTP方法GET、POST、PUT和DELETE对学生资源列表执行CRUD(创建、读取、更新、删除)操作。

首先,让我们定义一个“学生类”来表示学生资源:

public class Student{public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }public string Email { get; set; }}

接下来,让我们创建一个StudentsController类来处理HTTP请求:

[Route("api/students")]public class StudentsController : Controller{private static List students = new List{new Student { Id = 1, Name = "John Smith", Age = 20, Email = "john.smith@example.com" },new Student { Id = 2, Name = "Jane Doe", Age = 19, Email = "jane.doe@example.com" },new Student { Id = 3, Name = "Bob Johnson", Age = 21, Email = "bob.johnson@example.com" }};[HttpGet]public IActionResult GetAllStudents(){return Ok(students);}[HttpGet("{id}")]public IActionResult GetStudent(int id){var student = students.FirstOrDefault(s => s.Id == id);if (student == null){return NotFound();}return Ok(student);}[HttpPost]public IActionResult CreateStudent([FromBody] Student student){student.Id = students.Max(s => s.Id) + 1;students.Add(student);return CreatedAtAction(nameof(GetStudent), new { id = student.Id }, student);}[HttpPut("{id}")]public IActionResult UpdateStudent(int id, [FromBody] Student student){var existingStudent = students.FirstOrDefault(s => s.Id == id);if (existingStudent == null){return NotFound();}existingStudent.Name = student.Name;existingStudent.Age = student.Age;existingStudent.Email = student.Email;return NoContent();}[HttpDelete("{id}")]public IActionResult DeleteStudent(int id){var student = students.FirstOrDefault(s => s.Id == id);if (student == null){return NotFound();}students.Remove(student);return NoContent();}

此StudentsController类定义以下端点:

GET /api/students:返回所有学生的列表。GET /api/students/{id}:按id返回单个学生资源。POST /api/students:创建一个新的学生资源。PUT /api/students/{id}:按id更新现有学生资源。DELETE /api/students/{id}:按id删除现有的学生资源。

注意:对于CreateStudent和UpdateStudent方法,我们使用[FromBody]属性将请求体反序列化为Student对象。

还要注意,学生列表是静态的,并用一些示例数据进行了初始化。但是,在真实场景中,这些数据可能存储在数据库或其他持久性存储中。

最后,我们使用HTTP状态代码200 OK、201 Created、204 No Content和404 Not Found来指示每个操作的结果。

四、向Student类添加更多属性

以下是Student类的更新版本,其中包含一些附加的属性:

public class Student{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public int Age { get; set; }public string Email { get; set; }public string Address { get; set; }public string City { get; set; }public string State { get; set; }public string ZipCode { get; set; }}

在该类的更新版本中,我们添加了以下属性:

FirstName:学生的名字。LastName:学生的姓。Address:学生的街道地址。City:学生居住的城市。State:学生所在的州。ZipCode:学生地址的邮政编码。

这些附加的属性可以提供有关学生的更多信息,并可用于API中的筛选、排序和搜索操作。

五、将另一个属性添加到Student类关于学生所学的科目

以下是Student类的更新版本,其中包含学生所学科目的附加属性:

public class Student{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public int Age { get; set; }public string Email { get; set; }public string Address { get; set; }public string City { get; set; }public string State { get; set; }public string ZipCode { get; set; }public List SubjectsTaken { get; set; }}

在这个更新版本的类中,我们添加了一个名为SubjectsTaken的属性,它是一个字符串列表,表示学生所学科目的名称。此属性可用于按学生所学科目查询和筛选学生。

您可以像这样向列表中添加科目:

var student = new Student{Id = 1,FirstName = "John",LastName = "Doe",Age = 20,Email = "john.doe@example.com",Address = "123 Main St",City = "Anytown",State = "CA",ZipCode = "12345",SubjectsTaken = new List { "Math", "Science", "History" }};

而且,您可以像这样检索给定学生的科目列表:

var student = GetStudent(1);var subjects = student.SubjectsTaken;
六、将SubjectTake更改为名为Subject的对象包含属性Id、Name、Teacher和Credits

以下是Student类的更新版本,其中SubjectsTaken属性被替换为包含Id、Name、Teacher和Credits属性的新对象Subject:

public class Subject{public int Id { get; set; }public string Name { get; set; }public string Teacher { get; set; }public int Credits { get; set; }}public class Student{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public int Age { get; set; }public string Email { get; set; }public string Address { get; set; }public string City { get; set; }public string State { get; set; }public string ZipCode { get; set; }public List SubjectsTaken { get; set; }}

在这个类的更新版本中,我们用包含Id、Name、Teacher和Credits属性的新对象Subject替换了SubjectsTaken属性。这种新结构可以提供有关学生所学科目的更详细信息,并且可以用于根据特定科目的属性筛选和查询学生。

您可以将科目添加到SubjectsTaken列表,如下所示:

var student = new Student{Id = 1,FirstName = "John",LastName = "Doe",Age = 20,Email = "john.doe@example.com",Address = "123 Main St",City = "Anytown",State = "CA",ZipCode = "12345",SubjectsTaken = new List{new Subject { Id = 1, Name = "Math", Teacher = "Mr. Smith", Credits = 4 },new Subject { Id = 2, Name = "Science", Teacher = "Ms. Jones", Credits = 3 }}};

您可以检索给定学生的科目列表,如下所示:

var student = GetStudent(1);var subjects = student.SubjectsTaken;
七、将Student类中的State属性更改为枚举类型
public enum State{AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME,MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA,RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY}public class Student{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public int Age { get; set; }public string Email { get; set; }public string Address { get; set; }public string City { get; set; }public State State { get; set; }public string ZipCode { get; set; }public List SubjectsTaken { get; set; }}

在该类的更新版本中,我们用名为State的枚举替换了State属性。State枚举包含状态缩写列表,并为State属性提供类型安全性。

您可以这样设置学生的State属性:

var student = new Student{Id = 1,FirstName = "John",LastName = "Doe",Age = 20,Email = "john.doe@example.com",Address = "123 Main St",City = "Anytown",State = State.CA,ZipCode = "12345",SubjectsTaken = new List{new Subject { Id = 1, Name = "Math", Teacher = "Mr. Smith", Credits = 4 },new Subject { Id = 2, Name = "Science", Teacher = "Ms. Jones", Credits = 3 }}};

您可以像这样检索给定学生的State属性:

var student = GetStudent(1);var state = student.State;

八、为必填项ID、FirstName和EmailID添加校验器

以下是Student类的更新版本,其中包括Id、FirstName和Email属性的验证:

public class Student{private int _id;private string _firstName;private string _email;public int Id{get { return _id; }set{if (value <= 0){throw new ArgumentException("Id must be greater than zero.");}_id = value;}}public string FirstName{get { return _firstName; }set{if (string.IsNullOrEmpty(value)){throw new ArgumentException("First name cannot be null or empty.");}_firstName = value;}}public string LastName { get; set; }public int Age { get; set; }public string Email{get { return _email; }set{if (string.IsNullOrEmpty(value)){throw new ArgumentException("Email cannot be null or empty.");}_email = value;}}public string Address { get; set; }public string City { get; set; }public State State { get; set; }public string ZipCode { get; set; }public List SubjectsTaken { get; set; }}

在这个类的更新版本中,我们为Id、FirstName和Email属性添加了私有字段,并为其相应的setter方法添加了验证逻辑。Id属性必须大于零,FirstName和Email属性不能为null或空。如果任何这些验证检查失败,将引发ArgumentException异常。

您可以像这样创建一个新的学生对象:

var student = new Student{Id = 1,FirstName = "John",LastName = "Doe",Age = 20,Email = "john.doe@example.com",Address = "123 Main St",City = "Anytown",State = State.CA,ZipCode = "12345",SubjectsTaken = new List{new Subject { Id = 1, Name = "Math", Teacher = "Mr. Smith", Credits = 4 },new Subject { Id = 2, Name = "Science", Teacher = "Ms. Jones", Credits = 3 }}};

如果尝试使用无效数据创建新的学生对象,将引发ArgumentException异常:

var invalidStudent = new Student{Id = 0, // throws ArgumentExceptionFirstName = "", // throws ArgumentExceptionLastName = "Doe",Age = 20,Email = "", // throws ArgumentExceptionAddress = "123 Main St",City = "Anytown",State = State.CA,ZipCode = "12345",SubjectsTaken = new List()};
九、使StudentsController控制器异步

这里是StudentsController类的更新版本,它使用异步方法:

[ApiController][Route("api/[controller]")]public class StudentsController : ControllerBase{private readonly IStudentRepository _studentRepository;public StudentsController(IStudentRepository studentRepository){_studentRepository = studentRepository;}[HttpGet]public async Task>> GetAllStudents(){var students = await _studentRepository.GetAllStudentsAsync();return Ok(students);}[HttpGet("{id}")]public async Task> GetStudentById(int id){var student = await _studentRepository.GetStudentByIdAsync(id);if (student == null){return NotFound();}return Ok(student);}[HttpPost]public async Task> CreateStudent(Student student){if (!ModelState.IsValid){return BadRequest(ModelState);}await _studentRepository.AddStudentAsync(student);return CreatedAtAction(nameof(GetStudentById), new { id = student.Id }, student);}[HttpPut("{id}")]public async Task UpdateStudent(int id, Student student){if (id != student.Id){return BadRequest();}if (!ModelState.IsValid){return BadRequest(ModelState);}var existingStudent = await _studentRepository.GetStudentByIdAsync(id);if (existingStudent == null){return NotFound();}await _studentRepository.UpdateStudentAsync(student);return NoContent();}[HttpDelete("{id}")]public async Task DeleteStudent(int id){var existingStudent = await _studentRepository.GetStudentByIdAsync(id);if (existingStudent == null){return NotFound();}await _studentRepository.DeleteStudentAsync(existingStudent);return NoContent();}}

在该类的更新版本中,我们将异步关键字async添加到与IStudentRepository交互的操作方法中。我们还在调用异步方法之前添加了await关键字,以等待结果完成后再继续。

如果action方法返回一个值,我们将其包装为ActionResult<T>类型,其中“T”是返回值的类型。如果发生错误,我们将返回适当的ActionResult,例如BadRequest()或NotFound()。

注意:IStudentRepository接口也必须更新,以包含其方法的异步版本。以下是更新后的IStudentRepository的示例:

public interface IStudentRepository{Task> GetAllStudentsAsync();Task GetStudentByIdAsync(int id);Task AddStudentAsync(Student student);Task UpdateStudentAsync(Student student);Task DeleteStudentAsync(Student student);}

在这个版本的接口中,我们为每个方法添加了异步关键字,并将返回类型更改为Task<T>,其中“T”是返回值的类型。这允许调用代码使用await关键字等待方法完成。

十、结论

在本文中,我们使用ChatGPT构建了一个REST API,这是使用ASP.NET Core和C#编程语言实现的,用于实现学生信息的管理。此API仅是一个Web服务的基本实现版本,它通过提供几个不同的端点来实现CRUD(创建、读取、更新、删除)操作,以管理学生列表。实现过程中,ChatGPT能够向Student类添加基本验证,并使代码异步。除此之外,当我们需要Subject属性的新对象时,这个AI工具能够很容易将状态属性的类型更改为枚举类型,并创建了一个全新的类。总之,它工作得很好,创建了功能齐全的类、控制器和存储库。

在我看来,ChatGPT应该被视为编程辅助工具,尤其是对于简单和重复的任务,因为它可以使这些任务自动化,并推荐更高效和有效的编程技术。因此,它可以使程序员节省时间,从而使他们可以利用这些时间来解决更具挑战性和创造性的编程任务。然而,我也认为,使用它作为人类编程技能的补充,而不是替代是很重要的,因为它通常无法在复杂的情况下提供最佳解决方案。

至于ChatGPT的威力,我相信这篇文章足以证明。如果你是开发人员,可以将ChatGPT用于其他各种场景下,例如验证或测试代码。你甚至可以使用它在Python中生成代码。当前,许多公司已经在研究将ChatGPT集成到其平台上的方法了。

总之,ChatGPT是一种令人印象深刻的人工智能语言模型,它有可能彻底改变我们的编程方式,虽然它可能无法完全取代人类程序员,不过这个模型一定可以被视为一种宝贵的辅助资源来使用。

原文链接:​​https://dzone.com/articles/create-a-rest-api-in-c-using-chatgpt​​

译者介绍

朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。

标签:

上一篇 :

下一篇 :

世界快资讯:用ChatGPT写一个REST API!

译者|朱先忠策划|云昭51CTO读者成长计划社群招募,咨询小助手(微信号:TTalkxiaozhuli)一、简介ChatGP...

04-10 15:20:16

今日热讯:千万别再用这个姿势睡觉了!冲上热搜的“还阳卧”,小心睡出毛病

最近很多网友都在讨论网红睡姿“还阳卧”。“还阳卧”要求身体自然平躺,双侧的髋关节放松,两脚心贴在...

04-10 14:23:04

环球观速讯丨开封市尉氏县蔡庄镇:贯彻人大监督职能 筑牢乡村振兴底线

为切实做好各项安全管理工作,充分发挥人大代表监督职能,防止和减少生产安全事故,保障人民群众生命财...

04-10 13:06:11

环球报道:高校今年首批特殊招生计划公布

“强基计划”4月30日起报名目前已有三所高校公布面向贫困学子的选拔招生计划(副题)北京青年报记者雷嘉...

04-10 12:04:31

环球视点!桑当级猎雷艇_关于桑当级猎雷艇简述

1、桑当级猎雷艇 是英国海军建造的舰艇、该级艇的核心是马可尼公司研制的第三代反水雷舰艇综合指挥、控...

04-10 10:54:36

前沿资讯!哈尔滨市哪家高血压医院比较好[全新公布]-血压高是什么引起的

  高血压的常见因素是年龄的增长,年龄越大,高血压的风险就越大。高血压可能是由遗传因素引起的。过...

04-10 10:14:11

天天快讯:勇士27记三分狂胜开拓者56分 锁定西部第六将战国王

央视网消息:北京时间4月10日,NBA常规赛迎来收官日争夺,金州勇士客场挑战波特兰开拓者,勇士首节狂轰5...

04-10 09:27:23

全球微速讯:贵南高铁独山东站建设进入冲刺阶段

贵南高铁独山东站建设进入冲刺阶段

04-10 06:55:00

天天实时:如何制作圆形模板_冬季送闺蜜什么礼物好

你需要的东西透明塑料高射投影仪板工艺刀干擦标记循环项目切割垫细砂纸模板可用于各种项目。您可以使用...

04-10 04:57:02

环球今日报丨越野赤兔,百公里加速7.3秒,最大功率350马力

哈弗赤兔是一款哈弗汽车公司推出的越野赛车。它在哈弗越野车体系中处于顶级定位,以高性能、高稳定性和...

04-09 22:56:34

每日视讯:4天3板久远银海:控股股东的实控人拟变更事项存不确定性 4月27日将披露一季报

【4天3板久远银海:控股股东的实控人拟变更事项存不确定性4月27日将披露一季报】久远银海4月9日公告,公...

04-09 20:58:49

全球微资讯!河南省平顶山市一男子驾车撞人 致3死7伤

据河南省平顶山市公安局官方微信消息,4月8日20时42分,平顶山市城乡一体化示范区新兴路南段发生一起刑...

04-09 18:49:41

快讯:首届全球PE沈阳论坛项目路演成功举行

首届全球PE沈阳论坛项目路演成功举行

04-09 17:05:36

环球通讯!全球连线|以色列特拉维夫发生驾车撞人事件致1死7伤

01:00据以色列警方和急救组织消息,该国海滨城市特拉维夫7日晚发生驾车撞人事件,造成1人死亡、7人受伤...

04-09 15:40:34

焦点资讯:容性负载和阻性负载的区别_容性负载

1、电压滞后电流的,称为容性负载;其电流滞后电压的,称为感性负载;电压与电流相位相同的,陈为阻性负...

04-09 13:36:30

世界新消息丨科技特派团“精准滴灌”促发展

“冷再生泡沫沥青发泡参数多少合适?如何通过信息化手段精准分析成品料的质量?如何提高冷再生料的搅拌...

04-09 11:56:18

热点!1510788_15107

1、gb t15107-2013新旧版本的主要差异有:1 适用范围:GB T15107-2013适用于一般穿用的

04-09 10:13:42

世界观天下!中疾控:新发现50例!

图1-2全国报告人群新型冠状病毒抗原检测阳性数及阳性率变化趋势(数据来源于31个省(区、市)及新疆生产...

04-09 08:24:30

环球热点评!印花税太贵,房价太高,房源太少!悉尼人越来越不愿卖房搬家了

不断上涨的印花税成本,负担不起的房价,有限的待售房屋数量,以及需要为成年子女和孙子女提供空间等因...

04-09 06:06:38

当前通讯!梅花伞业股份有限公司(浙江财经网)

修建板块早盘走弱,到发稿,三维工程(19 56,-0 85,-4 16%)跌逾6%;中铁二局(24 01,0 90

04-09 00:52:12

全球讯息:《生化危机4:重制版》更新后 Xbox画面变差、PS5版画面提升

最近Capcom为《生化危机4:重制版》推出了一个新补丁,似乎改进了PS5版的画面,同时修复了XboxSeriesX|S...

04-08 21:26:22

全球滚动:文件名后缀有几种(文件名后缀)

1、打开任意文件夹,然后单击视图-选项打开文件夹选项面板。2、在文件夹选项面板中,单击查看选项卡并取...

04-08 19:20:25

环球今日报丨烟台高新区:推进政务服务事项标准化建设 提升企业群众办事便利度

为不断提升政务服务事项标准化水平,推进政务服务标准化、规范化、便利化建设,烟台高新区行政审批服务...

04-08 17:31:02

当前信息:【环球财经】美国非农就业数据相对强劲 美元指数7日上涨

由于美国3月份非农就业数据仍保持相对强劲,6日美元兑多数一篮子货币走高,美元指数在隔夜市场上涨,当...

04-08 15:46:23

速递!哪天收到圣诞礼物

哪天收到圣诞礼物,在我们大街上看过,西边有一个圣诞节就要来了,我打算悄悄悄地给我准备一份圣诞节礼...

04-08 15:11:01

全球聚焦:景区智能代步车为景区运营管理带来了什么便利?

近年来,随着科学技术进步及创新成果,各大行业迎来了翻天覆地的变革,景区也不例外,尤其是在出行方面...

04-08 13:46:25

环球速读:女方提出离婚债务怎么办

女方提出离婚,双方应当对债务进行协商确定各自应承担的债务额,无法协商的,可以起诉由法院来根据双方...

04-08 11:57:10

【世界热闻】东部战区已展开环台岛战备警巡和“联合利剑”演习

每经AI快讯,东部战区新闻发言人施毅陆军大校表示,4月8日至10日,中国人民解放军东部战区位台岛周边组...

04-08 10:47:08

全球滚动:这些明星也是十二星座,看看你和哪个明星同属一个星座

在我们生活中,有很多明星成为了我们的偶像,他们在各自的领域里获得了许多成就。每个人的性格、气质都...

04-08 09:04:59

【全球速看料】新安股份:融资余额13.75亿元,创近一年新低(04-07)

2023年4月7日新安股份融资余额13 75亿元,创近一年新低

04-08 07:25:26

当前热议!诗歌的意象是什么意思?_诗歌意象的定义

1、意象:一般是对文字所描写的物象的感受和体会 意境:是在意象所烘托的氛围中达到的一种境界,一种身临...

04-08 04:53:37

每日速读!《寻找你的命运少年Find Your Fate Junior》机器恐龙反击Dinobots Strike Back

这类故事翻译起来很麻烦结局1结局2结局3结局4结局5结局6结局7结局8结局9(第PAGE_1页)机器恐龙Dinobots...

04-08 00:02:08

天天百事通!千万别和印度人辩经:印度人会把你忽悠瘸了

先说个背景:可能有些在美国的华人朋友们知道,现在在美国从事科技行业的印度人不少,印度人多了以后,...

04-07 21:52:14

热点在线丨GGII:2022年中国锂电池辊压设备市场规模达32亿元 同比增长78%

高工产研锂电研究所(GGII)数据显示,2022年中国锂电设备市场规模达1000亿元,同比增长70%。受益于锂电池...

04-07 20:09:34

当前速讯:国美回应员工贷款上班公司报销利息传闻:为虚假消息

鞭牛士4月7日消息,近日,有报道称,一名认证为国美零售员工的网友在职场应用平台上爆料,国美开启了新...

04-07 18:57:34

世界热点!海为什么是蓝色的土味情话 海为什么是蓝色的

1、人眼看到的海水的颜色,是海水对太阳反射光的颜色。2、白光射向海水时,由于海水对白光的选择吸收和...

04-07 18:14:32

每日观察!中国足协:河南嵩山龙门更名为河南足球俱乐部

​各足球俱乐部、各有关方面:在河南省足球协会注册的河南嵩山龙门足球俱乐部由于俱乐部自身发展需要,...

04-07 16:58:35

每日快报!2022年报掘金丨主动权益类基金去年基民平均亏25%,只有这些基金让基民赚到了钱...

2022年报掘金丨主动权益类基金去年基民平均亏25%,只有这些基金让基民赚到了钱 ,基民,分红,公募基...

04-07 16:09:49

每日讯息!异动快报:电魂网络(603258)4月7日14点49分触及涨停板

4月7日盘中消息,14点49分电魂网络(603258)触及涨停板。目前价格31 22,上涨10 01%。其所属行业游戏目

04-07 15:26:40

天天视点!《出行心理学》

英国劳特里奇出版社将于5月出版由曼彻斯特城市大学心理学高级讲师安德鲁·史蒂文森(AndrewStevenson)撰写的

04-07 14:05:37

全球新资讯:抖音短视频能赚钱吗?有哪些赚钱方法?

在抖音平台上面,也有不少达人都想要知道抖音短视频到底能不能赚钱,也希望可以借助这个平台来赚钱,那...

04-07 13:04:28

天天快消息!Ravenswatch鸦卫奇旅延迟高/卡顿/掉线/黑屏解决方法

在Ravenswatch渡鸦眷顾 鸦卫奇旅这款游戏中,要想击败噩梦,抵达故事的最终章,我们不但要懂得如何搭配...

04-07 11:59:03

世界看点:中法签署特殊食品注册现场核查合作备忘录

据市场监管总局网站消息,4月6日下午,国家市场监督管理总局局长罗文同法国农业和粮食主权部部长马克·...

04-07 11:15:54

天天头条:挖出来的这块石头,形似龙爪,爪上还有鳞,它真的是龙爪化石吗?

科普中国资源服务

04-07 10:15:13

今日快讯:涉及地铁、公路、水库!浙江192个项目列入全省“百大”项目清单 杭州25个!

日前,浙江省自然资源厅印发通知,决定开展全省“百大”项目用地报批集中攻坚行动,保障扩大有效投资,...

04-07 09:50:41

当前资讯!情人节兵哥哥礼物

情人节兵哥哥礼物,送什么都可以,不管送什么,你送的礼物,都是学生的情况。心意到了就好,其实送什么...

04-07 09:18:23

即时:硬核快报 | 最不皇冠的CrossSport 有哪些新技术?

传言3月内公布售价并上市的第16代皇冠的上市时间推迟了,不过没有关系,不妨碍我们和大伙讲讲第十六代皇...

04-07 08:44:36

天天头条:担任公司的监事需要履行什么职责

担任公司的监事需要履行的职责是检查公司财务;提议召开及召集、主持临时股东会会议;向股东会会议提出...

04-07 07:10:16

今日讯!人民艺起评:《种地吧》打造慢综艺中的清新风格

原标题:人民艺起评:《种地吧》打造慢综艺中的清新风格近期,一档别出心裁的劳作纪实互动综艺《种地吧...

04-07 05:56:55

世界观速讯丨脂肪肝患者宜吃药物(脂肪肝患者宜吃食物)

大家好,小乐来为大家解答以上的问题。脂肪肝患者宜吃药物,脂肪肝患者宜吃食物这个很多人还不知道,现在...

04-07 01:14:37

每日报道:第一名!剑河消防在州级消防救援队伍队列会操和条令纲要知识竞赛取得优异成绩
全球热文:国内首个半潜式海上漂浮式光伏发电平台交付
天天要闻:上虞湿地公园有沙滩吗(上虞盖北哪个地方有大沙滩)
关注:英国G5世界大学排名及申请条件
环球看点!诸葛找房:3月重点10城二手房成交再升4成 苏州、佛山涨势领先
每日简讯:中源协和:VUM02注射液用于治疗特发性肺纤维化的药物临床试验获批
环球滚动:商务部:部分省份的外贸订单呈现逐渐回暖的趋势
环球观热点:时间定了!油价又有调整……
快播:245亿元!江津区集中签约38个项目
天天关注:AOC公布小苔藓M6迷你主机:i5-13420H加持
【新视野】思考乐转型,前路漫漫
热讯:人民银行今日开展80亿元逆回购操作 公开市场实现净回笼4310亿元
环球快消息!科技大佬被当街刺死震动硅谷!马斯克悲痛:抨击美国暴力犯罪
环球短讯!贝泰妮:公司的高端抗衰品牌AOXMED瑷科缦推出不久,目前在天猫已开始销售,设立了天猫官方旗舰店
全球微动态丨我是新奇怪青团 带给你春天的味道
视讯!英国向乌克兰提供贫铀穿甲弹引发国际社会争议和关注
环球通讯!孕妇能不能吃杏仁吗 孕妇能不能吃杏
热门:2023年国网湖南省电力有限公司招聘390人公告
环球最资讯丨别人发送淫秽色情视频给当事人的朋友家人应当如何定罪,可以判刑么
天天通讯!缅怀英烈 | 雪域英雄路 天堑变通途
世界观察:清明时节,烟台60余项文旅活动惊喜上线!
通讯!葡萄汁
精选!人民网评:思念跨山河,致敬英烈再奋发
每日观点:「新时代新征程新伟业——两会精神进基层」放下包袱 大胆发展——全国人大代表李小红宣讲全国两会精神
当前关注:汤唯回乐清老家为父亲庆寿,和老公提前离席,素颜喝酒放飞自我
世界速递!时间公式三年级_时间公式
当前通讯!美国总统拜登批准阿肯色州重大灾难声明
全球今头条!北京高职院校招生简章_北京高职院校
要闻:中国旅游城市排行榜50强_中国旅游城市
环球新消息丨立青生物技术有限公司_立青
热消息:门业人才网
每日播报!小产权房转让怎么处理
全球消息!隐名股东如何将自己的风险降到最低?
【热闻】品高股份:广州旌德拟减持公司不超2%股份
世界微资讯!合景泰富2022年酒店营运收入6亿元
全球热议:BOE将与国内供应商合作 占领三星显示器的UTG市场
世界短讯!战友哽咽回忆陈祥榕牺牲前最后时刻
世界看点:当日快讯:北向资金净流出超50亿元
【新视野】俄大使馆:美国对公开“北溪”管道爆炸案真相并无兴趣
全球关注:紧急提醒!10级雷雨大风!冰雹!厦门未来两天警惕……
【快播报】为什么很少有企业真正做到精益生产?
短讯!和讯个股快报:2023年04月04日 千红制药 (002550),该股股价成功突破年线压力位
【播资讯】创高股份以房抵款方式抵还叶铠向公司提供日常经营所需流动资金而向第三方取得部分借款 不超过2500万
滚动:河南洛阳牡丹盛开 超1000个品种争奇斗艳
环球时讯:今日请问;销售人员一般都招人。各方面要求高吗?待遇怎么样?谢谢大家!
世界快报:榇做名字的寓意_榇
微资讯!浙江省丽水市2023-04-04 03:12发布雷电黄色预警
每日消息!千年狐妖小说_狐妖小说
焦点播报:惊掉下巴!双腿灌茅台
世界热门:根田鼠乌纳拉斯卡亚种_关于根田鼠乌纳拉斯卡亚种简述
X 广告
资讯
X 广告

Copyright ©  2015-2022 东方畜牧网版权所有  备案号:沪ICP备2020036824号-8   联系邮箱:562 66 29@qq.com