[Базовые знания ASP.NET Core] -- Веб-API -- Создание и настройка веб-API (1)
[Базовые знания ASP.NET Core] -- Веб-API -- Создание и настройка веб-API (1)
1. Введение

Важность веб-API (интерфейса программирования веб-приложений) заключается в его ключевой роли в современной разработке программного обеспечения. Вот некоторые аспекты важности веб-API:

  1. межплатформенное взаимодействие
    • Web API позволяет взаимодействовать различным платформам, различным стекам технологий и приложениям. Будь то веб-приложения, мобильные приложения, настольные приложения или другие сервисы, все они могут быть API реализует совместное использование данных и функций.
  2. Межсервисная связь
    • В распределенной системе различные сервисы должны взаимодействовать друг с другом. Интернет API обеспечивает стандартизированный способ, позволяющий этим службам единообразным образом обмениваться данными и вызывать функции.
  3. Разделение передней и задней части
    • Web API подсказывает Разделение передней и задней частииз архитектуры. Разделив фронтенд и бэкенд,Команды разработчиков могут лучше сосредоточиться на своих областях.,Получите более гибкий и удобный в сопровождении код.
  4. разработка мобильных приложений
    • Мобильным приложениям часто необходимо взаимодействовать с серверами для получения данных. С помощью Интернета API,Мобильные приложения могут легко взаимодействовать с серверными службами.,Получайте и обновляйте данные,Реализуйте эффективное соединение между приложением и сервером.
  5. Микросервисная архитектура
    • существовать Микросервисная В архитектуре каждая служба взаимодействует через API. Интернет API предоставляет стандарт из, Метод слабой связи позволяет независимо разрабатывать различные микросервисы.、Развертывание и расширение.
  6. формат обмена данными
    • Web APIв целомиспользоватьстандартныйизформат обмена данными,Например, JSON или XML. Это позволяет легко обмениваться данными между различными системами.,В то же время это также улучшает читаемость и понятность данных.
  7. Открытость и совместимость
    • Используйте Интернет API,Предприятия и организации могут предоставлять открытые интерфейсы для своих услуг и данных.,Содействие сотрудничеству и интеграции. Такая открытость помогает создать более гибкую и масштабируемую экосистему приложений.
  8. безопасность
    • Веб-API обеспечивает механизм безопасности,Пройти аутентификацию и авторизацию,Убедитесь, что только авторизованные приложения или пользователи могут получить доступ к определенным ресурсам и функциям.

Веб-API являются неотъемлемой частью современной разработки программного обеспечения. Они способствуют модульности системы, масштабируемости и совместимости, а также предоставляют разработчикам мощные инструменты для создания различных типов приложений.

2. Создайте проект веб-API.
2.1 Создайте проект с помощью инструментов командной строки

Вы можете использовать инструмент командной строки (Command-Line Интерфейс, CLI) для создания Web API-проект.Ниже приводитсясуществоватьв командной строкеиспользовать.NET CLIСоздать Основные этапы проекта:

Откройте терминал командной строки

  • Откройте свой любимый терминал командной строкиuseiz, например Windows, из командной строки (Command Подскажите), PowerShell или терминал в Linux/macOS.

Перейдите в каталог хранения проекта.

использоватьcdКоманда для входа в проект, который вы хотите сохранитьиз Оглавление,Например:

Язык кода:javascript
копировать
cd path/to/your/projects

бегатьdotnet newЗаказ

использоватьdotnet newЗаказ Создать проект。существоватьздесь,насиспользоватьwebapiШаблон приходитсоздаватьодинWeb API-проект.

Язык кода:javascript
копировать
dotnet new webapi -n YourApiName

здесь-nПараметры используются для указания проектаизимя。

Введите каталог проекта

использоватьcdЗаказ进入新создаватьиз项目Оглавление:

Язык кода:javascript
копировать
cd YourApiName

Запустить проект

использоватьdotnet runЗаказ启动应用程序。这将会编译并бегатьтыизWeb API-приложение:

Язык кода:javascript
копировать
dotnet run

После запуска приложения вы сможете увидеть выходные данные, включая порт, который приложение прослушивает.

Тестовый API

  • Откройте браузер илииспользоватьинструмент(нравитьсяPostman)доступhttps://localhost:5001/weatherforecast,Это конечная точка API по умолчанию в примере.

Выполнив описанные выше шаги, вы сможете успешно использовать .NET. CLI создает простую сеть API-проект.Вы можете в зависимости от проектаиз Нужно действовать дальшеизразвиватьи Конфигурация。Не забудьте проверить.csprojдокументиStartup.csдокумент,Эти файлы содержат настройки запуска проекта.

2.2 Создайте проект с помощью Visual Studio

Шаги по созданию проекта веб-API в Visual Studio 2022 следующие:

  1. Выберите Создать новый проект.:выбирать“создаватьновый проект”。
  2. Выберите шаблон проекта веб-API ASP.NET Core.:существоватьсоздаватьновый проектизв окне,Вам необходимо выбрать проект шаблона «ASP.NET Core Web API».
  3. Настроить новый проект:Следующий,Вам необходимо ввести название проекта,Выберите местоположение проекта.
  4. Настройка другой информации:существовать Настроить новый процесс проектирования, вам также нужна Настройка другой информации,比нравиться框架、Тип аутентификации、КонфигурацияHTTPS、Включить Докер、Включите ожидание поддержки OpenAPI.
  5. Создать проект:наконец,Нажмите кнопку «Создать»,Вот и всесоздаватьодин新изASP.NET Core Web Проект API[1][2][4].
3. Настройте маршрутизацию и контроллеры.
3.1 Понимание основных концепций маршрутизации

В веб-API маршрутизация — это процесс принятия решения о том, как сопоставить HTTP-запросы с контроллерами и методами действий. Понимание основных концепций маршрутизации веб-API имеет решающее значение для создания и проектирования конечных точек API. Вот некоторые ключевые понятия:

  1. Шаблон маршрута
    • Шаблон маршрутизации определяет структуру URI конечной точки API, которая определяет, как запрос должен сопоставляться с соответствующим контроллером и методом действия. Шаблон маршрута использует заполнитель для представления переменных, например. {controller}, {action}, {id}ждать.Пример:[Route("api/[controller]/{id}")]
  2. HTTP-глагол
    • Маршрутизация — это больше, чем просто сопоставление URI,Также связано с HTTP-глаголами,例нравитьсяGET、POST、PUT、DELETEждать.проходитьсуществоватьконтроллериз По принципу работыиспользовать[HttpGet][HttpPost]Равные свойства,Каждый метод действия можно указать для ответа на команды HTTP.
  3. Маршрут по умолчанию
    • Маршрут по По умолчанию — это общее правило маршрутизации, которое сопоставляет URI с контроллерами и методами действий. В АСП.НЕТ Основной,Маршрут по умолчаниюиз模板в целом是{controller=Home}/{action=Index}/{id?},表示контроллер默认为Home,По умолчанию используется метод работыIndexidявляется необязательнымиз。
  4. Маршрутизация атрибутов
    • ASP.NET Core позволяет определять шаблоны маршрутизации непосредственно в контроллере маршрутизации с использованием атрибутов и методов действий. Это делает информацию о маршрутизации более интуитивно понятной.,Например:[Route("api/[controller]/{id}")]。Маршрутизация атрибутов широко используетсяиз Способ,в частностисуществоватьRESTful в API.
  5. Ограничения
    • Ограничения маршрутизации позволяют указать форматы параметров маршрутизации или диапазоны значений. Например,ты можешьиспользовать Регулярное выражение для обеспеченияidПараметры — числа.,илииспользовать[Range]проверка диапазона атрибутов。
  6. Генерация ссылок
    • существоватьстроитьURLчас,Генерация маршрутов позволяет ссылаться на конечные точки API типобезопасным образом. существуют представление, контроллер или где-либо еще,ты можешьиспользоватьUrl.ActionилиUrl.RouteUrlи другие методы,Таким образом, вам не нужно жестко кодировать URL-адрес.,Вместо этого он опирается на шаблоны и параметры маршрутов.
  7. Приоритет сопоставления маршрутов
    • Если запросу соответствует несколько шаблонов маршрутизации, система выберет наиболее подходящий маршрут. Приоритет сопоставления зависит от заполнителя и ограничения в шаблоне. Система постарается выбрать наиболее конкретный маршрут.
  8. промежуточное программное обеспечение маршрутизации
    • В АСП.НЕТ В Core маршрутизация осуществляется через промежуточное программное обеспечение маршрутизациисправитьсяиз。промежуточное программное обеспечение Прежде чем HTTP-запрос маршрутизациисуществовать достигнет контроллера, он отвечает за анализ URI и определение контроллера и метода действия, которые необходимо выполнить.
3.2 Создание класса контроллера

В .NET 6, вы можете легко создавать Интернет, используя инструменты командной строки. APIконтроллердобрый。Ниже приводитсяиспользовать.NET CLIЗаказ Создать класс контроллераиз Основные шаги:

Введите каталог проекта и используйте cd YourApiName Введите каталог проекта.

Запустите следующую команду, чтобы создать класс контроллера:

Язык кода:javascript
копировать
dotnet add controller -n YourControllerName

здесь -n Параметр используется для указания имени контроллера.

После выполнения приведенной выше команды вы увидите, что файл класса контроллера создан в Controllers папка. По умолчанию имя класса контроллера заканчивается на Controller окончание, например ValuesController.cs

Откройте созданный файл класса контроллера, и вы увидите класс контроллера по умолчанию, который содержит пример кода и обычно несколько примеров методов действий (Действие). Вы можете изменить, добавить или удалить эти методы операций в соответствии с вашими потребностями. Структура примера класса контроллера выглядит следующим образом:

Язык кода:javascript
копировать
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;

namespace YourApiName.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class YourControllerNameController : ControllerBase
    {
        // GET: api/YourControllerName
        [HttpGet]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET: api/YourControllerName/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return "value";
        }

        // POST: api/YourControllerName
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

        // PUT: api/YourControllerName/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE: api/YourControllerName/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
    }
}
3.3 Определение правил маршрутизации

В веб-API ASP.NET Core правила маршрутизации определяют, как сопоставить URI HTTP-запроса с соответствующим контроллером и методом действия. Существует несколько способов определения правил маршрутизации, наиболее распространенными из которых являются маршрутизация по атрибутам и настройка глобальной маршрутизации. Вот краткое описание обоих методов:

  1. Маршрутизация атрибутов Маршрутизация по атрибутам — это способ определения шаблонов маршрутизации в существующих контроллерах и методах работы, использующих атрибуты. Это определение более интуитивно понятно и обычно используется для RESTful. API. Вот простой пример:
Язык кода:javascript
копировать
[ApiController]
[Route("api/[controller]")]
public class YourControllerNameController : ControllerBase
{
    // GET: api/YourControllerName
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET: api/YourControllerName/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
        return "value";
    }

    // POST: api/YourControllerName
    [HttpPost]
    public void Post([FromBody] string value)
    {
    }

    // PUT: api/YourControllerName/5
    [HttpPut("{id}")]
    public void Put(int id, [FromBody] string value)
    {
    }

    // DELETE: api/YourControllerName/5
    [HttpDelete("{id}")]
    public void Delete(int id)
    {
    }
}

существоватьвышеиз例子середина,[Route] 特性用于指定контроллеризбазовая маршрутизация,исуществовать По принципу работыиспользоватьиз[HttpGet][HttpPost]Равные свойства表示对应изHTTPпредикати相对于контроллербазовая маршрутизацияизпуть。

  1. Глобальная конфигурация маршрутизации Другой путь – существование Startup.cs Глобальная в файле конфигурация маршрутизации。существовать ConfigureServices используется в методе AddControllers метод и передать Configure Метод маршрутизации Конфигурация. Ниже приведен простой пример:
Язык кода:javascript
копировать
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

существуют В этом примере,MapControllers По умолчанию метод будетиспользоватьсогласованный маршрут,То есть правила маршрутизации автоматически генерируются в соответствии с контроллером, методом работы и соглашением об именах. Например,YourControllerNameController из Get метод будет соответствовать /YourControllerName。 ты все еще можешь Startup.cs используется в файле MapControllerRoute Метод настройки глобальной конфигурации маршрутизации, например:

Язык кода:javascript
копировать
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "api/{controller}/{action}/{id?}");
    });
}

существуют В этом примере,MapControllerRoute метод используется для определения именованного маршрута, где {controller}{action}{id} Это заполнитель, указывающий соответствующий контроллер, метод работы и дополнительный идентификатор. Таким образом, конфигурацию можно гибко адаптировать к потребностям вашего проекта.

Совет: Вы можете выбрать подходящий метод в соответствии с особенностями проекта, а иногда можно также смешивать маршрутизацию объектов и Глобальную конфигурация маршрутизации。

4. Модель данных и DTO
4.1 Создайте модель данных

В АСП.НЕТ Core Web APIсередина,Модели данных часто используются для представления сущностей в приложении.,Эти сущности можно сопоставить с таблицами базы данных.、APIиз Ввод и выводждать.Ниже приводитсясоздаватьодин简单модель данныхиз Основные шаги:

существовать项目серединасоздаватьодин模型добрый

  • существоватьтыиз项目серединасоздаватьодин用于表示сущность из категории. Этот класс может содержать свойства, методы и другие члены.,Чтобы существовало использовать в приложении.
Язык кода:javascript
копировать
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

существуют В приведенном выше примере файл с именем Product из модели данных, которая имеет IdName и Price свойство.

Использование аннотаций к данным (необязательно)

  • Может Используйте аннотации к данные, чтобы предоставить больше информации классу модели, например, проверку данных, ожидание отображаемого имени. System.ComponentModel.DataAnnotations из аннотации в пространстве имен:
Язык кода:javascript
копировать
using System.ComponentModel.DataAnnotations;

public class Product
{
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    [Range(0.01, double.MaxValue, ErrorMessage = "Price must be greater than 0.")]
    public decimal Price { get; set; }
}

существовать В приведенном выше примере,использовать Понятно Required и Range Свойства для добавления правил проверки данных.

Использование контекста данных (необязательно)

  • Если вы планируете сопоставить модель с базой данных, вы обычно будете использовать инструмент ORM, такой как Entity Framework Core, и создадите контекст данных (DbContext) для управления взаимодействием с базой данных.
Язык кода:javascript
копировать
using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public DbSet<Product> Products { get; set; }

    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}

существовать В приведенном выше примере,создавать Понятноодин ApplicationDbContext класс, который наследуется от DbContext и содержит Product сущность из DbSet свойство.

Настройка контекста данных (необязательно)

  • существовать Startup.cs В разделе Конфигурация подключения к базе данных и контекста данных:
Язык кода:javascript
копировать
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

    // Other configurations...
}

существовать В приведенном выше примере,использовать ПонятноSQL База данных сервера, вам необходимо appsettings.json Настройте строку подключения к базе данных в файле.

так,Вы создали простую модель данных.,И, при необходимости, сопоставить его с базой данных. существовать использовать эту модель данных в веб-API,Им можно управлять с контроллера существования.,例нравиться获取、создавать、Обновить и удалить данные.

4.2 Использование DTO для передачи данных

В АСП.НЕТ Core Web APIсередина,DTO (объекты передачи данных) — обычная практика.,Позволяет передавать данные между клиентом и сервером.,В то же время он также может контролировать содержимое передаваемых данных. Ниже приведены основные шаги для передачи данных через DTO:

Создать класс DTO

  • создаватьодинDTOдобрый,Этот класс содержит данные, которые вы хотите передать между клиентом и сервером. Обычно.,Класс DTO должен содержать только те атрибуты существования, которые необходимы при передаче.,а не всю физическую модель.
Язык кода:javascript
копировать
public class ProductDTO
{
    public string Name { get; set; }
    public decimal Price { get; set; }
}

существуют В приведенном выше примере файл с именем ProductDTO класс изDTO, который содержит Name и Price свойство.

существоватьконтроллерсерединаиспользоватьDTOs

  • существует ваш контроллер, использующий класс DTO для обработки входящих и исходящих данных. в целом,существует конечная точка API из параметра, используется класс DTO для получения данных клиента,В то же время существование возвращает результат. Используйте класс DTO для передачи данных клиенту.
Язык кода:javascript
копировать
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
    private readonly ApplicationDbContext _context;

    public ProductsController(ApplicationDbContext context)
    {
        _context = context;
    }

    // POST: api/products
    [HttpPost]
    public IActionResult CreateProduct([FromBody] ProductDTO productDTO)
    {
        if (productDTO == null)
        {
            return BadRequest("Product data is null.");
        }

        // Convert DTO to entity model
        var product = new Product
        {
            Name = productDTO.Name,
            Price = productDTO.Price
        };

        // Add to database
        _context.Products.Add(product);
        _context.SaveChanges();

        // Return a response with DTO
        var responseDTO = new ProductDTO
        {
            Name = product.Name,
            Price = product.Price
        };

        return Ok(responseDTO);
    }
}

существовать В приведенном выше примере,CreateProduct Метод действия получает ProductDTO объект,Преобразуйте его в твердотельную модель(Product),Затем добавьте модель объекта в базу данных. наконец,проходитьсоздавать另одинDTOобъект来表示返回给客户端изданные。

Совет: Преимущество DTO заключается в том, что они позволяют уменьшить объем данных, передаваемых по сети, повысить производительность и гарантировать передачу только тех данных, которые необходимы клиенту. Кроме того, DTO также обеспечивают большую гибкость, поскольку вы можете настроить класс DTO в соответствии со своими потребностями.

4.3 Проверка модели данных

В АСП.НЕТ Core Web В API вы можете использовать аннотации к данным (Data Annotations)и Fluent Validation 等Способ对модель данных Проверять。Ниже приводится其середина两种常见изметод:

  1. Используйте аннотации к данным использовать System.ComponentModel.DataAnnotations из аннотации в пространстве имен для проверки модели данных. Эти аннотации включают в себя [Required][StringLength][Range] ждать. Пример:
Язык кода:javascript
копировать
using System.ComponentModel.DataAnnotations;

public class Product
{
    public int Id { get; set; }

    [Required(ErrorMessage = "Name is required")]
    public string Name { get; set; }

    [Range(0.01, double.MaxValue, ErrorMessage = "Price must be greater than 0.")]
    public decimal Price { get; set; }
}

существовать В приведенном выше примере,[Required] используется для обеспечения Name Свойства не могут быть пустыми и [Range] используется для обеспечения Price Атрибут существования указывает диапазон.

  1. Использование плавной проверки Fluent Validation Свободно владеет грамматикой, основанной на существовании .NET Core Внедрите в свое приложение мощные правила проверки. Во-первых, вам необходимо установить FluentValidation.AspNetCore Сумка:
Язык кода:javascript
копировать
dotnet add package FluentValidation.AspNetCore

Затем создайте класс валидатора, который наследует AbstractValidator<T> class и определите правила проверки в конструкторе. Пример:

Язык кода:javascript
копировать
using FluentValidation;

public class ProductValidator : AbstractValidator<Product>
{
    public ProductValidator()
    {
        RuleFor(product => product.Name)
            .NotEmpty().WithMessage("Name is required");

        RuleFor(product => product.Price)
            .GreaterThan(0).WithMessage("Price must be greater than 0.");
    }
}

существовать Startup.cs Документы ConfigureServices В методе зарегистрируйте валидатор:

Язык кода:javascript
копировать
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers()
            .AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining<ProductValidator>());
}

Затем,Вы можете проверить модель с помощью существующего контроллера и валидатора use. Если проверка не удалась,вернет сообщение об ошибкеиз BadRequest ответ. Пример:

Язык кода:javascript
копировать
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
    private readonly IValidator<Product> _validator;

    public ProductsController(IValidator<Product> validator)
    {
        _validator = validator;
    }

    // POST: api/products
    [HttpPost]
    public IActionResult CreateProduct([FromBody] Product product)
    {
        var validationResult = _validator.Validate(product);

        if (!validationResult.IsValid)
        {
            return BadRequest(validationResult.Errors.Select(e => e.ErrorMessage));
        }

        // The rest of your code for creating the product...

        return Ok("Product created successfully.");
    }
}

В приведенном выше примере,CreateProduct Метод действия получает Product объект и использование ProductValidator чтобы проверить. Если проверка не удалась, будет возвращено сообщение об ошибке. BadRequest ответ; иначе,продолжит выполнятьсоздаватьпродуктизлогика。

5. Резюме

В АСП.НЕТ Core Web API в процессе создания и конфигурации мы сначала используем .NET. CLI создает проект и понимает структуру проекта. Узнайте больше о Интернете Маршрутизация API из базовых концепций является ключевой и может быть достигнута с помощью маршрутизации функций или глобальной конфигурация маршрутизацииопределитьAPIконечная точка。Создать модель Данные являются основой для создания API, который можно использовать посредством аннотаций данных или Fluent. Валидация для проверки. Кроме того, использование DTO (объектов передачи данных) помогает эффективно передавать данные между клиентами и серверами и контролировать содержимое передаваемых данных. Наконец, реализован простой класс контроллера для демонстрации операций создания, чтения, обновления и удаления ресурсов. В целом, в результате этого процесса мы создали базовую версию ASP.NET. Core Web API,涉及Понятно路由、модель данных、Ключевые понятия, такие как проверка и передача данных. Это создает основу для дальнейшего развития и расширения.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose