Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288

Интересен ваше мнение asp.NET Core + Angular 8

03.11.2019, 13:30. Показов 706. Ответов 3

Студворк — интернет-сервис помощи студентам
Интересно ваше мнение и плиз аргументируйте его, в общем есть 2 проекта, сервер и клиент, приведу пример одного из методов и на его основе задам вопрос.
Метод удаляет из друзей человека:
Сервер:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[HttpGet("[action]/{id}"), Route("deletefriend")]
        public IActionResult Deletefriend(int id)
        {
            User user = db.Users.Include(x=>x.UserFriends).ThenInclude(x=>x.Friend).FirstOrDefault(x =>x.UserName== User.Identity.Name);
            if (user.UserFriends.Count != 0)
            {
                var del = user.UserFriends.First(x => x.FriendId == id);
                if (del != null)
                {
                    db.Friendships.Remove(del);
                    db.SaveChanges();
                    return Ok();
                }
            }           
            return Ok();
        }
клиент:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { User } from '../user';
import { HttpHeaders, HttpClient } from '@angular/common/http';
 
 
@Component({
  selector: 'delete-friends',
  templateUrl: './delete-friends.component.html'
})
export class DeleteFriendsComponent implements OnInit {
 
  id: number;    
 
  constructor(private router: Router, activeRoute: ActivatedRoute, public http: HttpClient) {
    this.id = Number.parseInt(activeRoute.snapshot.params["id"]);
  }
 
  ngOnInit() {
    let token = localStorage.getItem("jwt");
    this.http.get(`http://localhost:5000/api/user/deletefriend/${this.id}`,
      {
        headers: new HttpHeaders({
          "Authorization": "Bearer " + token,
          "Content-Type": "application/json"
        })
      }).subscribe(data => this.router.navigateByUrl("/friendslist"))
  }
 
 
}
Как вы могли заметить, метод HttpGet, а выполняет функцию HttpDelete. Вопрос вот в чем, можно ли так делать, если метод работает отлично, нет никаких ошибок, в общем отрабатывает и выполняет свою задачу полностью... Приемлемо ли так использовать Гет метод? Дело в том, что у меня в прошлом проекте все было по правилам, но там проект был объединенным с асп.нет кором, и ненужна была авторизация, а тут 2 отдельных проекта + необходимо было делать авторизацию на JWT-токенах, и я не совсем пока понимаю как тут правильно делать запросы пост, пут, делит... по этой причине сейчас у меня практически все действия на Гетах, и все работает без проблем, но вот пока их(действий) не так много, решил проконсультироваться у знающих форумчан, и если это критично, то переписать тогда.
Буду благодарен аргументированным ответам.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2019, 13:30
Ответы с готовыми решениями:

Социальная сеть на asp.NET Core + Angular 8
Вчера закончил свой первый тестовый проект Получил новую тестовую задачу - написать социальную сеть, т.е. систему в которой имеются те...

Различии C#.NET и ASP core
хочу подключаться по api к сайтам. обязательно ли мне изучать ASP MVC CORE??? и для чего он нужен не очень понимаю...

Обновление данных в бд ASP.NET Core / EF
Предположим, что у меня есть контрол PurseController using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using...

3
60 / 45 / 17
Регистрация: 12.08.2019
Сообщений: 161
03.11.2019, 14:50
Цитата Сообщение от Lucky64 Посмотреть сообщение
Как вы могли заметить, метод HttpGet, а выполняет функцию HttpDelete.
Цитата Сообщение от Lucky64 Посмотреть сообщение
Буду благодарен аргументированным ответам.
Один аргумент - бардак

Метод GET не должен изменять состояние ресурса, есть соглашения

http://www.restapitutorial.ru/... thods.html

В соответствии спецификации HTTP, GET (также как и HEAD) запросы используются только для чтения данных, не изменя их. Таким образом, при соблюдении данного соглашения, они считаются безопасными. То есть они могут использоваться без риска изменения данных, вне зависимости от того, один раз данные были получены, или же 10, или ни разу вовсе. GET (а также HEAD) запросы являются идемпотентными (тождественными), что подразумевает получение идеинтичных данных при использовании одних и теж же запросов (как при единичном обращении, так и при многократном).

Не стоит использовать GET для небезопасных операций над данными, при данном запросе они не должны быть модифицированы.
Цитата Сообщение от Lucky64 Посмотреть сообщение
как тут правильно делать запросы пост, пут, делит...
ниче не понимаю в ангуляре,
но у ангаляра есть делит
1
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,230
03.11.2019, 14:53
И токен интерсепторами добавляют, а не явно при каждом запросе.
1
 Аватар для Lucky64
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
03.11.2019, 15:58  [ТС]
Цитата Сообщение от QuestionAnd Посмотреть сообщение
Один аргумент - бардак
перелопатил вроде как теперь с гета получаю инфу, в пост отправляю, изменяю бд, в делите удаляю, все по феншую, спасибо
Цитата Сообщение от IamRain Посмотреть сообщение
И токен интерсепторами добавляют, а не явно при каждом запросе.
насчет этого попробую разобраться, спс!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2019, 15:58
Помогаю со студенческими работами здесь

Добавить друзей ASP.NET Core EF
3 час сижу и не знаю где промахнулся, в общем есть таблица в бд с юзерами, есть таблица друзей, в ней 2 поля - юзерИД и френдИД, сам...

Ваше мнение по поводу технологии ASP.NET MVC
Всем привет друзья Хотел бы узнать ваше мнение по поводу технологии ASP.NET MVC Сам на среднем уровне знаю ASP.NET WebForms, но этого...

Пагинация в ASP .NET Core- Angular 8
Есть проект созданный в связке Angular 8 - Core т.е. фронтенд-сервет, нужно сделать пагинацию(постраничную навигацию), буду признателен...

ASP.Net Core + Angular. Шаблон из VS
Собственно вот, по шаблону студии создал проект. Все настроил где надо - заработало. Теперь о неприятном. По шаблону скрипты и стили...

Использование Identity Server и ASP .Net Core 3.00 с Angular
Приложение Angular ASP Net Core создано на основе шаблона VS2019 .NetCore 3.0 с аутентификацией и локальным хранением учетных записей. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru