Создайте .NET API за 3 минуты с помощью ChatGPT

Знаете ли вы, что возможно создать REST API на C# менее чем за 3 минуты? Читайте дальше, чтобы узнать секреты быстрой разработки .NET API с помощью ChatGPT. Итак, приступим!
@Chatgpturbobot – бесплатный chatgpt бот.
Создание Rest API на C#
Входные данные ChatGPT: Создайте REST API на C# для управления программой тренировки
Конечно, вот базовый пример того, как создать REST API на C#, используя ASP.NET:
- Во-первых, создайте новый ASP.NET Core Web Application в Visual Studio.
- Добавьте необходимые пакеты NuGet для вашего проекта: Microsoft.AspNetCore.Mvc.NewtonsoftJson и Microsoft.EntityFrameworkCore.SQLServer.
- Создайте новую базу данных для хранения данных о тренировке.
- Создайте новый класс модели для тренировки с такими свойствами, как название, описание, продолжительность и т.д.
- Создайте новый класс DbContext для взаимодействия с базой данных.
- Создайте новый класс контроллера с методами для обработки операций CRUD для процедуры тренировки, таких как запросы GET, POST, PUT и DELETE.
- Используйте маршрутизацию атрибутов, чтобы указать конечные точки для каждого метода в контроллере.
- Используйте внедрение зависимостей, чтобы внедрить DbContext в контроллер.
- Используйте метод JsonResult для возврата данных программы тренировки в формате JSON.
- Протестируйте API с помощью такого инструмента, как Postman.
Вот несколько примеров кода, которые помогут вам начать работу:
// WorkoutRoutine model class
public class WorkoutRoutine
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int Duration { get; set; }
}
// WorkoutRoutineDbContext class
public class WorkoutRoutineDbContext : DbContext
{
public WorkoutRoutineDbContext(DbContextOptions<WorkoutRoutineDbContext> options) : base(options)
{
}
public DbSet<WorkoutRoutine> WorkoutRoutines { get; set; }
}
// WorkoutRoutineController class
[Route("api/[controller]")]
[ApiController]
public class WorkoutRoutineController : ControllerBase
{
private readonly WorkoutRoutineDbContext _context;
public WorkoutRoutineController(WorkoutRoutineDbContext context)
{
_context = context;
}
[HttpGet]
public IActionResult Get()
{
var workoutRoutines = _context.WorkoutRoutines.ToList();
return new JsonResult(workoutRoutines);
}
[HttpGet("{id}")]
public IActionResult Get(int id)
{
var workoutRoutine = _context.WorkoutRoutines.FirstOrDefault(w => w.Id == id);
if (workoutRoutine == null)
{
return NotFound();
}
return new JsonResult(workoutRoutine);
}
[HttpPost]
public IActionResult Post(WorkoutRoutine workoutRoutine)
{
_context.WorkoutRoutines.Add(workoutRoutine);
_context.SaveChanges();
return new JsonResult(workoutRoutine);
}
[HttpPut("{id}")]
public IActionResult Put(int id, WorkoutRoutine workoutRoutine)
{
var existingWorkoutRoutine = _context.WorkoutRoutines.FirstOrDefault(w => w.Id == id);
if (existingWorkoutRoutine == null)
{
return NotFound();
}
existingWorkoutRoutine.Name = workoutRoutine.Name;
existingWorkoutRoutine.Description = workoutRoutine.Description;
existingWorkoutRoutine.Duration = workoutRoutine.Duration;
_context.SaveChanges();
return new JsonResult(existingWorkoutRoutine);
}
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
var workoutRoutine = _context.WorkoutRoutines.FirstOrDefault(w => w.Id == id);
if (workoutRoutine == null)
{
return NotFound();
}
_context.WorkoutRoutines.Remove(workoutRoutine);
_context.SaveChanges();
return new JsonResult(workoutRoutine);
}
}
Примечание: Это всего лишь базовый пример, который поможет вам начать работу. Возможно, вам потребуется изменить код в соответствии с вашими конкретными требованиями. Кроме того, важно добавить аутентификацию и авторизацию в свой API, чтобы гарантировать, что только авторизованные пользователи могут получать доступ к данным программы тренировок и изменять их.
Добавление свойств
Входные данные ChatGPT: Пожалуйста, добавьте следующие свойства в класс тренировки из предыдущего примера: название, серию, повторения и перечисление дней недели
Вот обновлённая версия класса WorkoutRoutine с новыми свойствами и перечислением:
// WorkoutRoutine model class
public class WorkoutRoutine
{
public int Id { get; set; }
public string Name { get; set; }
public int Series { get; set; }
public int Repetitions { get; set; }
public DayOfWeek DayOfWeek { get; set; }
public string Description { get; set; }
public int Duration { get; set; }
}
// DayOfWeek enum
public enum DayOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
Вы можете использовать эти свойства в методах контроллера для создания, чтения, обновления и удаления тренировочных процедур. Например, чтобы создать новую программу тренировки, вы должны отправить POST-запрос в API с объектом JSON, содержащим данные программы тренировки. Ниже приведён пример:
{
"name": "Push-ups",
"series": 3,
"repetitions": 10,
"dayOfWeek": "Monday",
"description": "Do push-ups with good form.",
"duration": 10
}
И соответствующий метод контроллера для обработки этого запроса будет выглядеть следующим образом:
[HttpPost]
public IActionResult Post(WorkoutRoutine workoutRoutine)
{
_context.WorkoutRoutines.Add(workoutRoutine);
_context.SaveChanges();
return new JsonResult(workoutRoutine);
}
Аналогичным образом, вы можете использовать другие свойства и значения enum в других методах контроллера для извлечения, обновления и удаления процедур тренировки по мере необходимости.
Добавление схемы базы данных
Входные данные ChatGPT: Пожалуйста, добавьте схему базы данных для WorkoutRoutineDbContext из предыдущего примера.
Вот обновлённая версия класса WorkoutRoutineDbContext со схемой базы данных для объекта WorkoutRoutine:
// WorkoutRoutineDbContext class
public class WorkoutRoutineDbContext : DbContext
{
public WorkoutRoutineDbContext(DbContextOptions<WorkoutRoutineDbContext> options) : base(options)
{
}
public DbSet<WorkoutRoutine> WorkoutRoutines { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<WorkoutRoutine>(entity =>
{
entity.ToTable("WorkoutRoutines");
entity.HasKey(e => e.Id);
entity.Property(e => e.Name)
.IsRequired()
.HasMaxLength(50);
entity.Property(e => e.Series)
.IsRequired();
entity.Property(e => e.Repetitions)
.IsRequired();
entity.Property(e => e.DayOfWeek)
.IsRequired();
entity.Property(e => e.Description)
.HasMaxLength(100);
entity.Property(e => e.Duration)
.IsRequired();
});
}
}
Этот код создаёт таблицу с именем “WorkoutRoutines” со столбцами для каждого свойства в классе WorkoutRoutine. Свойство Id задаётся в качестве первичного ключа для таблицы, а остальные свойства задаются по мере необходимости с соответствующей максимальной длиной. Метод OnModelCreating используется для настройки схемы базы данных для объекта WorkoutRoutine. Вы можете обновить схему по мере необходимости в соответствии с вашими конкретными требованиями.
Вызов API
Входные данные ChatGPT: Теперь покажите мне пример того, как я могу вызвать этот API и создать новую тренировку с названием chest, 4 серии по 12 повторений по понедельникам и четвергам из приложения nodejs.
Вот пример того, как вызвать API и создать новую программу тренировки, используя Node.js и библиотеку axios:
const axios = require('axios');
const createWorkout = async () => {
try {
const newWorkout = {
name: 'Chest',
series: 4,
repetitions: 12,
dayOfWeek: 'Monday',
description: 'Chest workout routine',
duration: 60
};
const res = await axios.post('http://localhost:5000/api/workoutroutine', newWorkout);
console.log(res.data);
} catch (error) {
console.error(error);
}
};
createWorkout();
Этот код определяет новый объект workout routine с указанными свойствами и использует библиотеку axios для отправки POST-запроса в конечную точку API по адресу “http://localhost:5000/api/workoutroutine ” с новым объектом workout routine в качестве тела запроса. Затем данные ответа заносятся в консоль. Вы можете изменить этот код в соответствии с вашими конкретными требованиями и запустить его в Node.js среде для создания новых тренировочных процедур через API.
И это всё! У нас уже есть наш .NET API, созданный менее чем за 3 минуты с помощью ChatGPT. Удивительно, не правда ли?
Csharp
Программирование на C Sharp