Вопросы с тегами [rest]

0

голосов
3

ответ
21

Просмотры

апите код состояния для запроса поста, который не смог

У меня есть апи вызов пост, который в настоящее время создает встречу в моей системе бронирования. Если вызов апи отправляет запрос на назначение и апите может успешно создать appoinment API-интерфейс возвращает 201, созданный код статуса. В настоящее время, если запрос на назначение не не создается (из-за различные вещи, такие как время, больше не доступно или в комнате в настоящее время используется) API-интерфейс возвращает код статуса 400 Неверного запроса. «400 Bad Request ответ код состояния указывает на то, что сервер не может или не обработать запрос из-за чего-то, что воспринимается как ошибка клиента» Данные, посылаемые не недопустимый синтаксис и потенциально может быть повторно и быть успешным. Есть ли более соответствующий код состояния для этой неудачи, чтобы создать ресурс. будет 422 Unprocessable Entity быть правильным ответом в данном случае?
JimmyShoe
1

голосов
1

ответ
69

Просмотры

Есть ли безопасности Спринт JWT дело реализации с ALG: нет атаки? [закрыто]

Реализации JWT могут быть подвержены различным атакам, один из них является «ALG: нет» атака (подробнее здесь). Я использую «весна-безопасности JWT» зависимость в моем файле pom.xml, и был не в состоянии выяснить, является ли эта реализация сделок с «ALG: нет» атаки. Является ли эта атака смягчается осуществления пружинный безопасности JWT?
omer
0

голосов
0

ответ
21

Просмотры

Уменьшение количества запросов к списку элементов с такой же в линии изменяемого поля визуализации

В то время отображения таблицы элементов, если значение поля для X не определен, он отображается как элемент выбора. Django делает запрос для каждого выбора элемента, и они могут добавить и привести к задержкам в больших таблицах. Что такое лучший способ уменьшить количество запросов? views.py от rest_framework импорта рендереров из класса rest_framework.response импорта Ответ ItemViewSet (viewsets.ModelViewSet): QuerySet = models.Item.objects.select_related ( "bought_by") serializer_class = serializers.ItemSerializer filterset_fields = ( "bought_by") renderer_classes = [ renderers.JSONRenderer, renderers.BrowsableAPIRenderer, renderers.TemplateHTMLRenderer] защиту список (Self, запрос, * арг ** kwargs): QuerySet = self.filter_queryset (self.get_queryset ()), если request.accepted_renderer.format == "HTML" : пункты = я. HTML {% статическая нагрузка%} {% нагрузки rest_framework%} {%, если items_info%} {% csrf_token%} Имя Активный куплено {% для пункта в пунктах%} {{item.name}} {{item.active}} {% стиль render_field serializer.bought_by = стиль%} {% ENDFOR%} {%}% еще нет ничего, чтобы показать. {% ENDIF%} Если есть три элемента, один запрос каждый будет получить serializer.bought_by. Я думал, что Django / ФПИ будет просто повторно использовать значение, но это запрос для каждого цикла. Пытаясь пройти «сериализатор-купил-под»:. Self.get_serializer () bought_by в ответ я получаю AttributeError: объект «ItemSerializer» не имеет attribute'bought_by»Печать сериалайзера я вижу: >> > Печать (self.get_serializer ()) ItemSerializer (контекст = { 'запрос': 'Формат': Нет, 'Вид':}): URL = HyperlinkedIdentityField (имя_представления = 'MyApp: деталь-деталь') = имя CharField ( уникальный = True, max_length = 50) = активный BooleanField (требуется = False) bought_by = SlugRelatedField (allow_null = True, QuerySet =, требуется = False, slug_field = 'имя') есть ли способ, чтобы передать bought_by в шаблон? Или я должен использовать JS; оказывать поле формы вне цикла и клон / дублировать каким-то образом? --- Изменения --- По желанию Эндре в: models.py класса покупателя (models.Model): Имя = models.CharField (уникальный = True, max_length = 20) класса Item (models.Model): Имя = models.CharField (уникальный = True, max_length = 50) = активный models.BooleanField (по умолчанию = True) bought_by = models.ForeignKey (Покупатель, нуль = True, пусто = True,
silverstripes
1

голосов
1

ответ
709

Просмотры

check_object_permissions с CreateAPIView

CommentCreate является CreateAPIView используется, чтобы отправлять комментарии на другой модели «отчет». Мне нужно, чтобы заблокировать любой, кто не является автор доклада, или кто не в назначенной группе людей, которым разрешено оставлять комментарии, с помощью этой конечной точки для создания комментариев. Класс CommentCreate (generics.CreateAPIView): serializer_class = CommentSerializer QuerySet = Comment.objects.none () Защита check_object_permissions (самость, запрос, объект): если obj.report.creator = request.user: # также проверить, если request.user является в группе людей, которые могут комментировать поднять exceptions.PermissionDenied (деталь = «у вас нет разрешения») проблема я столкнулся в том, что check_object_permissions вызывается, но исключение не быть пойманным в любом месте, поэтому комментарий не будет размещен, как обычно ни на что. Что я здесь отсутствует?
denvaar
0

голосов
1

ответ
17

Просмотры

Обнаружен неизвестный тег «нагрузка».?

Я хочу добавить некоторые пользовательские-шаблонный tags.But, {% нагрузки userfilters%} => тег «нагрузка» не работает. settings.py # проект / settings.py ШАБЛОНЫ = [{ 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [os.path.join (base_dir, 'HTML / jinja2'),] , 'APP_DIRS': true 'Options': { 'окружения': 'accountv1.jinja2.environment',},},] jinja2.py # проект / jinja2.py от django.templatetags.static импорта статического из django.urls импорт реверсивная из jinja2 импорта окружающей среды четкости среды (** опция): окр = Environment (** опции) env.globals.update ({ 'статическими': статические, 'URL': реверс,}) возвращает окр приложение / templatetags / userfilters ,
user10827542
1

голосов
1

ответ
678

Просмотры

Как искать из многих областей?

У меня есть пользовательский фильтр для моего режима просмотра: класс OrderFilter (django_filters.rest_framework.FilterSet): имя пользователя = django_filters.CharFilter (имя = 'user__username', lookup_expr = 'icontains') имя_клиент = django_filters.CharFilter (имя = 'user__first_name', lookup_expr = 'icontains') класс Мета: модель = Order исключает = [ 'рк'] И это работает, когда я отправить запрос, как это: HTTP: // LOCALHOST?: 8000 / заказов / имя пользователя = TestUser или HTTP: // локальный: 8000 / заказы /? имя_клиент = джон, но я хочу, чтобы создать только один запрос для поиска данных, содержащих строку поиска в имени пользователя, first_name и last_name. Как это сделать?
Nips
1

голосов
1

ответ
1.2k

Просмотры

Весна загрузка основной весна аутентификации загрузка сеанс возможно

У меня есть серверное приложение фонового пружинных загрузок, который реализует базовую аутентификацию по протоколу HTTPS. Не будем иметь традиционный веб-интерфейс переднего конца, а мой андроид и клиенты IOS будут использовать REST API вызовов. Бэкенд в настоящее время проверки информации имя пользователя и пароль, полученные и реагирует с правильными сообщениями о состоянии (401, 200). Могу ли я использовать пружинный загрузочный сеанс, чтобы иметь логин пользователя в начале сессии, а затем использовать значение сеанса для каждого последующего вызова REST API для этой сессии? Реализовать этот вопрос похож на [Спринг загрузки отдых безопасность с Android и IOS, но этот вопрос, похоже, не охватывает кэширования и с использованием значения сеанса принятым для все дополнительного Rest API призывает к сессии. Должен ли я передать значение сеанса в качестве параметра в Rest ставить и команды API размещать? Цель должна иметь приложение проверить пользователь зарегистрирован и проверить свои учетные данные, прежде чем принимать дополнительные команды остальное пут и пост. Я прочитал документацию spring.io, но не нашел эту тему охвачены. Несколько новичок пружинных ботинок.
geezer57
1

голосов
1

ответ
45

Просмотры

Разница между LocalStorage и сессии [закрыт]

Я создал аутентификацию пользователя с паспортной локальной стратегией, и я использую сессию. Каждый раз, когда пользователь вошел в сессии хранится в базе данных и в браузере. В моем веб-интерфейсе можно использовать user.id, чтобы сохранить его в локальном хранилище в качестве ключа или маркер?
Sadiq Mustapha Aji
1

голосов
3

ответ
61

Просмотры

Элегантный способ вернуть JSon поле, если поле является недействительным в Python

Я тупой вопрос о моей колбе REST API. Если у меня есть модель пользователя с большим количеством информации, и я хочу, чтобы вернуть его в формате JSON. Но часть информации по-прежнему не имеет никакого значения (NULL). Что элегантный способ, чтобы вернуть его как пустую строку или значение по умолчанию другой вместо того, чтобы вернуть его в нуль. Что-то вроде этого: { 'имя пользователя': 'Foo', 'FullName': ''} вместо этого: { 'имя пользователя': 'Foo', 'FullName': нулевой} Это моя функция: Защиту JSON (самостоятельно): возвращение { 'имя пользователя': self.phone 'FullName': self.fullname} Это модель пользователя: класс UserModel (db.Model): __tablename__ ID = 'пользователей' = db.Column (db.Integer, primary_key = True ) имя пользователя = db.Column (db.String (80)) пароль = дб.
ikhsan
0

голосов
0

ответ
3

Просмотры

IHealth лаборатории паб уведомление крюк

Я создал учетную запись разработчика Ihealth и зарегистрировать мое заявление. После успешной регистрации, я получаю client_id и client_secret_parameter. Когда я вошел в некоторые данные вручную, как вес, пар из Ihealth облака, то уведомление крючок не срабатывает какой-либо уведомления. Я застреваю в этом в течение последних 3-х дней. Кроме того, когда я пытаюсь для извлечения вручную введенных данных с использованием Version2 конечной точки с указанием неверного номера SV. Я не знаю, где мы получаем это SV номер. Пожалуйста, помогите это срочно.
priyanka
1

голосов
1

ответ
41

Просмотры

Уплотненные Отношения Serializer Rest Framework отображается неправильно

Я пытаюсь отобразить атрибуты в модели болезни и фактических данных модели, но атрибуты, которые отображаются на конце ссылки только те атрибуты, которые присутствуют в правиле модели. Models.py: - класс Rule (models.Model): болезнь = models.ForeignKey (болезнь, по умолчанию = 0, related_name = "DRules") доказательства = models.ForeignKey (Evidence, по умолчанию = 0, related_name = "ERules") measure_of_belief = models.PositiveIntegerField (\ help_text = "мера веры (в процентах), что болезнь присутствует дано это доказательство существует", \ по умолчанию = 0, валидаторы = [MinValueValidator (0), MaxValueValidator (100)]) measure_of_disbelief = модели. PositiveIntegerField (\ help_text = «мера неверия (в процентах), что болезнь присутствует дано свидетельство не существует», Там нет ошибки или сбоя, то значение от модели болезни и фактических данных модели просто не отображается. Вот результат
mutedeuphonies
0

голосов
2

ответ
11

Просмотры

как получить имя пользователя с маркером Джанго отдыха authetication?

Я использую Django Django = 2.1.7 и остальное рамочное djangorestframework = 3.9.2 Это мой URL для пути входа в систему ( «отдых-авторизация / Войти», включают в себя ( «rest_auth.urls»)), когда я ввожу имя пользователя и пароль, получил фишку от остальных API. Но я хочу, чтобы мой деталь пользователь как имя, идентификатор и т.д., чтобы показать в моих реагирующих компонентов. Пожалуйста, помогите мне, как достичь. Я видел много ответов на StackOverflow даже официальная документация не является описательным https://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication
imsaiful
1

голосов
0

ответ
401

Просмотры

Не удалось отправить письмо активации с Джосера в Django Framework Rest

пытаюсь отправить письмо с кодом активации, когда пользователь зарегистрироваться. когда запрос поста называется содержание электронной почты отображается в консоли, но это не отправить электронную почту пользователя. Установка Джанго: EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = EMAIL_HOST_PASSWORD = EMAIL_PORT = 587 EMAIL_BACKEND = '' django.core.mail.backends.smtp.EmailBackend Джосера = { 'SET_PASSWORD_RETYPE': Правда, 'LOGOUT_ON_PASSWORD_CHANGE': Правда, 'PASSWORD_RESET_SHOW_EMAIL_NOT_FOUND': Правда, 'PASSWORD_RESET_CONFIRM_URL': '# / пароль / сброс / подтверждение / {UID} / {маркер}', 'ACTIVATION_URL': '# / активировать / {идентификатор пользователя} / {маркер}', «SEND_ACTIVATION_EMAIL «: Правда, 'сериализаторы': {}} PS: SMTP включена аккаунта Gmail с помощью https: //www.codingforentrepreneurs.
Bishnu Sharma
1

голосов
0

ответ
42

Просмотры

Как мы можем использовать один и тот же ресурс с различными фильтрами?

У меня есть этот ресурс: И мне нужно, чтобы показать точно такой же ресурс, но фильтруется одним из ее полей (т.е. типа === 'принтера по умолчанию, фильтр прячась), так что мы создаем «Принтеры» CRUD для активов : Как мы можем послать параметр «пользовательский» на ресурс и использовать для извлечения данных ресурса с фильтром? (А также фильтровать «создать», и т.д.)?
user2078023
1

голосов
0

ответ
388

Просмотры

Как обрабатывать правильно HTTP Accept заголовок при пустой или нулевой?

Я работаю с Spring Framework о Rest. У меня есть сценарий о тестировании, когда запрос является GET и принимает либо пустым или нулевым. Он тесно связан с: @GetMapping называется, даже если Accept определяются как нулевые, я прочитал следующее: Как интерпретировать пустую HTTP Accept заголовка? Что значит «Accept: /» означает под клиентом разделом заголовков запроса? Кажется, следующие варианты, как решения являются действительными: 400 Bad Request 406 Не Приемлемый Рассмотрим пустое или нулевое значение Accept как * / * вместо трех вариантов, что причина этого поста. Между двумя первыми, я считаю более целесообразным 406 не приемлем, потому что она специфична или жесткая для Accept. Я имею в виду, какой тип носителя представляет собой пустой или нуль? это не известен тип носителя, такой как XML или JSON Третий вариант кажется нелогичным, в соответствии со следующими пунктами (в соответствии мои собственные точки зрения, может быть, я неправильно или что-то отсутствует): Сервер имеет метод обработчика для GET, который возвращает либо XML или JSON, такие как: @GetMapping (путь = "/ {ID} », производит = {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE}) общественного @ResponseBody Персона findOneById (@PathVariable строковый идентификатор) {вернуть personaService.findOneById (ID); } Клиент должен иметь ясно с самого начала, что он будет делать запрос и обрабатывать ответ либо XML или JSON, согласно акцепт отправлен по запросу. Таким образом, по какой-либо причине, если запрос отправлен имеет Accept, как пустой (предположим, неправильное кодирование), Это третья точка (* / *), что я не могу понять: «пусть сервер возвращать любой тип носителя»; даже при том, что, позволяет предположить, сервер возвращает XML и клиент просто может обрабатывать JSON вместо этого, но, конечно, Accept, как Json не был указан с самого начала. Таким образом, клиент сразу получил ответ должен получить исключение, но заметит, что сервер сделал работу без необходимости Таким образом: Как обрабатывать правильно HTTP Accept заголовка при пустом или нуле?
Manuel Jordan
1

голосов
0

ответ
170

Просмотры

источник данных доступа через шлюз питания BI

У нас есть потребность в доступе к источнику данных из службы питания BI с использованием толчка набора данных механизма. В качестве источника данных находится в частной сети, идея заключается в том, чтобы настроить шлюз питание BI предоставляя нам прямой доступ, не открывая сетевой брандмауэр. Теперь мы видим, что шлюз PBI предлагает различные варианты подключения, например, Oracle, MS SQLServer, DB2 и т.д. - но наш источник данных в первую очередь предлагает API Rest. Можно ли подключить к этому источнику данных непосредственно через шлюз PBI? Мы не можем найти этот пример где-нибудь в документации или в Интернете (и при условии, что это будет общий случай использования, так как большинство систем в настоящее время не подвергать их БД напрямую).
Jerry Karlsson
1

голосов
1

ответ
325

Просмотры

Аутентификация в Wordpress от Android WebView

В настоящее время я работаю над хобби проекта, который имеет 3 основных компонента: Android приложения, базируемый Django-отдых-основа бэкэнда, Wordpress FRONTEND Андроида приложение проверяет подлинность против REST API, а также поддерживает вход с Facebook. Есть некоторые разделы WP фронтэнда Я хотел бы интегрировать с помощью WebView Android, но некоторые особенностей в Wordpress требуют аутентификации пользователя. Первоначально я думал о добавлении пользователя в таблицу пользователей Wordpress, когда новый пользователь зарегистрирован через бэкэнд, а затем просто аутентифицировать с помощью Wordpress' JSON API и впрыснуть кук в WebView с JS. Но этот подход не будет работать, если пользователь зарегистрирован через Facebook из Android (так как нет никакого пароля можно использовать для проверки подлинности с помощью API JSON). То есть, другими словами, Мне нужно, чтобы проверить подлинность в Wordpress из WebView Android, а также поддержки Facebook логина и пользовательская аутентификации одновременно. Как я могу справиться с этим сценарием? Любые предложения будут очень признательны.
alxrcs
1

голосов
2

ответ
369

Просмотры

DRF тестирование модели Serializer - Джанго Restframework

Я проверяю мою модель Serializer в Джанго restframework с APITestCase. это моя структура: класс Usertest (APITestCase): Защиту test_userprofile_create (Я): пользователь = User.objects.create (имя пользователя = 'Асгар', пароль = '4411652A', email='[email protected]») Профиль = UserProfile.objects.create (FullName = 'asghariiiiii', PHONENUMBER = '9121345432', адрес = 'Беллы, пользователь = пользователь) user.user_profile = профиль клиента = APIClient () запрос = client.get (' / пользователь / создать / ') = данные UserCreateSerializer (пользователь, контекст = {' запрос ':. запрос}) данных URL = реверс (' пользователь создать ') response_create = client.post (URL, данные) на мой взгляд, разрешений, установленных для AllowAny. нет необходимости для входа в систему или force_authenticate. Данные = UserCreateSerializer (пользовательский контекст = { «запрос»: запрос}) данные AttributeError:. «HttpResponseNotFound» объект не имеет атрибута «build_absolute_uri», как вы можете увидеть сообщение об ошибке происходит от создания данных .first я попытался удалить контекст, но ошибка приходит с это название: AssertionError: HyperlinkedIdentityField требует запрос в контексте сериализатора. Добавить контекст = { «запрос»: запрос} при инстанцировании сериалайзера. нет необходимости для входа в систему или force_authenticate. Данные = UserCreateSerializer (пользовательский контекст = { «запрос»: запрос}) данные AttributeError:. «HttpResponseNotFound» объект не имеет атрибута «build_absolute_uri», как вы можете увидеть сообщение об ошибке происходит от создания данных .first я попытался удалить контекст, но ошибка приходит с это название: AssertionError: HyperlinkedIdentityField требует запрос в контексте сериализатора. Добавить контекст = { «запрос»: запрос} при инстанцировании сериалайзера. нет необходимости для входа в систему или force_authenticate. Данные = UserCreateSerializer (пользовательский контекст = { «запрос»: запрос}) данные AttributeError:. «HttpResponseNotFound» объект не имеет атрибута «build_absolute_uri», как вы можете увидеть сообщение об ошибке происходит от создания данных .first я попытался удалить контекст, но ошибка приходит с это название: AssertionError: HyperlinkedIdentityField требует запрос в контексте сериализатора. Добавить контекст = { «запрос»: запрос} при инстанцировании сериалайзера. HyperlinkedIdentityField требует запроса в контексте сериализатора. Добавить контекст = { «запрос»: запрос} при инстанцировании сериалайзера. HyperlinkedIdentityField требует запроса в контексте сериализатора. Добавить контекст = { «запрос»: запрос} при инстанцировании сериалайзера.
taghiss
1

голосов
2

ответ
134

Просмотры

Apache HttpClient working intermittently

Я не очень опытный с веб-разработки, так что это, вероятно, начинающий проблема. У меня есть небольшой проект с двумя веб-приложений Java на двух разных машинах на Tomcats, один сталкивается пользователь (внешний интерфейс, FE приложение) и сообщающихся с другой (бэкэндом, ВЕ приложение). BE обменивается данными с БД через TCP и с FE через REST API. Проблема заключается в том, что Apache HttpGet используется в приложении FE достигает BE приложение только иногда, но обычно на FE я UnknownHostException. BE связи с БД или непосредственно ориентации BE REST API из браузера всегда работает. Какие журналы я должен смотреть на, и что я должен делать установки котами? По умолчанию Tomcat регистрация не дает мне много информации, но я предполагаю, что это проблема конфигурации Tomcat, так как брандмауэры вниз и все остальные TCP связь работает без проблем. Ниже мой (очень Vanilla) использование Apache HttpGet: ... Строка URL = string.Format ( "HTTP: //% s / AutoexcludedDBService / nacionalidades", properties.getProperty ( "dbWebService")); CloseableHttpClient клиент = HttpClients.createDefault (); CloseableHttpResponse ответ = NULL; Строка JSON = NULL; = Строка статус строки статус нуль; попробуйте {HttpGet запрос = новый HttpGet (URL); //request.setHeader(HttpHeaders.CONTENT_TYPE, "применение / JSON"); request.addHeader ( "принять", "приложения / JSON"); request.addHeader ( "User-Agent", HTTP.USER_AGENT); RequestConfig requestConfig = RequestConfig.custom () .setConnectionRequestTimeout (10000) .setConnectTimeout (10000) .setSocketTimeout (10000) .build (); request.setConfig (requestConfig); ответ = client.execute (запрос); ...
Toma Krstic
1

голосов
0

ответ
398

Просмотры

VueJS аутентификации с Django REST Key

Я могу получить ключ после входа в систему через мой Django REST API, но мне интересно, как я должен хранить этот ключ. Я на самом деле не используя Django, но я думаю, что я должен хранить куки себя то или что-то. Я использую AXIOS для VueJS взаимодействовать с API. Я использую Джанго остальное авторизацию, чтобы получить маркер.
Florin
1

голосов
1

ответ
322

Просмотры

Удалить ресурс весной остальные данные hateoas с отношением

У меня есть категория, пункт и роли для ресторана. Я могу получить и запрос POST с помощью почтальона, но при попытке удалить запись в «категории» это не дает 204 - никакого содержания, но данные все еще не удалены. это потому, что категория имеет много для одного отношения с рестораном. с другой стороны, если я делаю запрос DELETE для ролей она прекрасно работает, не имеет прямого отношения. POJO для категорий @Entity @Table (имя = "Категория") класс Категория общественного {@Id @GeneratedValue (стратегия = GenerationType.IDENTITY) частное ИНТ идентификатор; частное имя строки; @ManyToOne @JoinColumn (имя = "restaurantId") частный ресторан ресторан; @OneToMany (mappedBy = "категория", принеси = FetchType.EAGER, каскадные = CascadeType.ALL) частные элементы Set; общественная Категория () {} @Autowired общественная Категория (название String, ресторан ресторана, установить элементы) {this.name = имя; this.restaurant = ресторан; this.items = предметы; } Общественного ИНТ GetId () {возвращение идентификатор; } Общественного недействительными SETID (интермедиат ID) {this.id = ID; } Строка GetName () {имя общественного возврата; } Общественной недействительная SetName (имя String) {this.name = имя; } Установить GetItems общественного () {возвращает элементы; } общественного недействительными setItems (набор элементов) {this.items = предметы; } Общественного Ресторан getRestaurant () {возвращение ресторан; } Общественного недействительный setRestaurant (ресторан ресторан) {this.restaurant = ресторан; }} POJO для ролей @Entity @Table (Name = "Роль" ) Класс Роль общественности {@Id @GeneratedValue (стратегия = GenerationType.IDENTITY) частное ИНТ идентификатор; частное имя строки; @OneToMany (mappedBy = "роль", принеси = FetchType.EAGER, каскад = CascadeType.ALL) частные пользователи Set; общественная роль () {} @Autowired общественности Роль (имя String, Set пользователи) {this.name = имя; this.users = пользователей; } Общественного ИНТ GetId () {возвращение идентификатор; } Общественного недействительными SETID (интермедиат ID) {this.id = ID; } Строка GetName () {имя общественного возврата; } Общественной недействительная SetName (имя String) {this.name = имя; } Общественного Set GetUser () {вернуть пользователей; } общественного недействительный setUsers (набор пользователей) {this.users = пользователи;
shankara narayanan
1

голосов
1

ответ
36

Просмотры

JQuery Помещенный не работает, но работает с почтальоном

I feel bad junking Stackoverflow with these junky questions, but with hours of looking for examples, I couldn't fix the problem. Here it is. I am trying to PUT with jQuery, my code is this $.ajax ({ type: "PUT", url: "http://localhost:3000/users/5a57adb130cdda747d2c4863", dataType: "json", contentType: "application/json", data: JSON.stringify(data), success: function() { console.log("worked!") } }) The success function is called, but when I GET on postman, my data is not changed. But when I PUT on postman, it works. Postman screenshot Thanks!!! EDIT: With debugging on my route, it seems as though the JS code is not passing the data properly. Route code router.put('/:id', function (req, res) { User.findByIdAndUpdate(req.params.id, req.body, {new: true}, function (err, user) { if (err) return res.status(500).send("There was a problem updating the user."); res.status(200).send(user); console.log("PUT id:" + req.params.id); console.log("PUT body:" + req.body.name); // .name being the data I am passing console.log("PUT user:" + user) }); }); Logging output PUT id:5a57adb130cdda747d2c4863 PUT body:undefined PUT user:{ _id: 5a57adb130cdda747d2c4863, name: 'fsafsafa', ... } PUT id:5a57adb130cdda747d2c4863 PUT body:fsafsafa PUT user:{ _id: 5a57adb130cdda747d2c4863, name: 'fsafsafa', ... }
1

голосов
1

ответ
283

Просмотры

Ошибка вызова DELETE - (403) Недостаточно разрешений для этого файла»| Google Drive API

Я создал следующий код. Я должен скачивать файлы из моей папки Google Drive. Папка совместно. После загрузки, я должен удалить эти файлы из Google Drive. Я попробовал - $ файл = $ сервис-> родителей-> удалить ($ file_id, $ folder_id); - Он ничего не делает, и не дает каких-либо ошибок. $ Файла = $ сервис-> files-> мусор ($ file_id); - Это дает ошибки вызова DELETE - (403) Недостаточно разрешений для этого файла»Ошибка Мой код.:
uks.bo.adi.tdg07
1

голосов
0

ответ
155

Просмотры

Низкая производительность извлечения событий календаря по сравнению с контактами

Я в настоящее время тестирования некоторые функциональные возможности (производительность, ...) графа API (с использованием графа C # SDK) и стало любопытно о чем-то. Когда я попытался запросить большое количество событий календаря потребовалось много времени, по сравнению с тем, когда я доступом к контактам. Прилагается изображение содержит статистическую величину, которая сравнивает раз завершения большого количества контактов и календарных событий (с использованием графа SDK). Я обнаружил, что разница между ними достаточно велика, даже если его только 1000 единиц, которые запрашиваются (события: 13s против контактов: 2с). Код, который я использовал для обоих запросов должны быть в значительной степени идентичны (как показано ниже). Я также протестировал посылая свои собственные HTTP-запросы (без графа SDK), но все-таки получили аналогичные результаты. Поскольку возврат JSONObjects событий календаря и контактов, кажется, не отличаются по размеру, я хотел бы спросить, есть ли причина, контакты могут быть запрошены намного быстрее? И как я могу улучшить производительность для извлечения событий? Код для получения контактов определенной папки:. // запрос контакты из contactfolder с запросом ID = contactFolderId вара = m_graphClient.Me.ContactFolders [contactFolderId] .Contacts.Request () Top (1000); результат переменная = ждут request.GetAsync (); // добавить результат в список contacts.AddRange (результат); // отправить запрос NextLink если таковые имеются вар СледующаяСтраница = результат; в то время как (nextPage.NextPageRequest! = NULL) {вар nextPageRequest = nextPage.NextPageRequest; СледующаяСтраница = ждут nextPageRequest.GetAsync (); contacts.AddRange (СледующаяСтраница); } Код для получения событий календаря определенного календаря: // запроса события из календаря с запросом ID = calendarFolderId вара = m_graphClient.Me.Calendars [calendarFolderId]. . Events.Request () Top (1000); результат переменная = ждут request.GetAsync (); // добавить результат в список events.AddRange (результат); // отправить запрос NextLink если таковые имеются вар СледующаяСтраница = результат; в то время как (nextPage.NextPageRequest! = NULL) {вар nextPageRequest = nextPage.NextPageRequest; СледующаяСтраница = ждут nextPageRequest.GetAsync (); events.AddRange (СледующаяСтраница); } Изображения:
Michael Hufnagel
1

голосов
2

ответ
208

Просмотры

маркер состояния и отменить OAuth

Учитывая я приобрел маркер OAuth2 из https://login.windows.net/{tenant-id}/oauth2/token с использованием пароля типа гранта, является ли их REST API, чтобы получить статус этого маркера недействительного маркера (выход из системы ) Я буду использовать этот маркер для доступа питания BI REST API,
Johno
1

голосов
2

ответ
23

Просмотры

Есть ли WCF (Windows Communication Foundation) имеют функцию Micro Web Service? И это только поддерживается REST?

мой вопрос заключается в следующем: Есть ли WCF (Windows Communication Foundation,) имеет функцию Micro Web Service и это поддерживается только REST?
Furkan Topal
1

голосов
1

ответ
228

Просмотры

Изменение Magento 2 REST API

Эй, ребята, мне интересно, если кто-то может помочь с этим. Теперь я столкнулся с проблемой в моей компании. Мы разрабатываем сообщество MultiStore Magento 2 для наших клиентов. Идея заключается в том, чтобы иметь несколько магазинов в одной и той же установки Magento 2, где каждый магазин для каждой независимой компании. Проблема заключается в интеграции с нашей системой ERP. С API REST мы имеем полный контроль в установке, даже если мы не с главными админами удостоверением. если запускать команды, как это в почтальоне: https://magentostore.com/rest/V1/orders?searchCriteria у нас есть все заказы в установке, все магазины. Таким образом, компании с их полномочиями будут иметь такой же контроль, и это очень плохо, проблема безопасности. В магазинах будут иметь доступ к данным друг от друга. Мы попытались расширения для продвинутых разрешений, как AITOC и Amasty но это S работает только на уровне внешнего интерфейса и не принимает никакого эффекта в API REST. Мы знаем, что Magento не было сделано для такого рода вещи, поэтому мой вопрос: можно ли изменить API REST для фильтрации запросов от магазина? и где я могу найти этот API REST запросы? Я благодарю вас так много.
Rafael Padovani
1

голосов
0

ответ
25

Просмотры

JSONPath: сохранение содержимого в отфильтрованных значений

}] Вопрос есть ли API, чтобы сохранить содержимое полного результата JSON от корневого уровня? И есть ли какой-либо конкретный API, чтобы получить результаты Путей [ "$ [ 'Результаты'] [0] [ 'места'] [0] [ 'планов'] [0] [ 'многоуровневого'] [0]", " $ [ 'результаты'] [0] [ 'локаций'] [0] [ 'планы'] [2] [многоуровневая] [0] "" $ [ 'результаты'] [1] [ 'локаций'] [0] [ 'планы'] [1] [многоуровневая '] [0]»]
Syed Mazreena
1

голосов
1

ответ
220

Просмотры

SalesForce SOSL Поиск - Как запросить связанные объекты на REST (объекты: Случай, контакт)

Я хотел бы запросить список тематических номеров и распечатать контактную информацию смежной в одной команде поиска SOSL. Является ли это выполнимо с помощью SOSL над REST API для использования идентификаторов полей, как указатель? Пример поиска "найти {XY00001234 *} ВО ВСЕХ ОБЛАСТЯХ ВОЗВРАЩЕНИЕ Case (ContactEmail, OwnerId ГДЕ ContactEmail LIKE '% .test'), Contact (Email WHERE Id = Case.OwnerId) LIMIT 10" Приведенный выше запрос выдает ошибку, как: «Bind переменных разрешено только в Apex кода».
Claude Falbriard
1

голосов
0

ответ
299

Просмотры

Symfony 4: Implement links routes with Hateoas-Bundle

I try the install "willdurand/hateoas-bundle" inside my project with Symfony4 but there is a problem because the "HATEOAS-BUNDLE" only working with Symfony3 and below. requires symfony/framework-bundle ~2.3 - v3.4.3 In this case I used willdurand/hateoas but I checked and there is not have BazingaHateoasBundle and I think there is my problem because I can not perform the Serialization links in this way: { "user": { "id": 3, "played_name": "John", "_links": { "self": { "href": "http://example.com/person/3" } } } } It only shows me the data without serialization links: { "id": 3, "played_name": "John Doe" } In Symfony 3 and below, the hateos-bundle include this package BazingaHateoasBundle): { public function registerBundles() { $bundles = array(new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle()); } } And the willdurand/Hateoas for Symfony 4 there is not include the BazingaHateoasBundle And When configure the Serialization Link in my Entity Role @Hateoas\Relation("person", [email protected]\Route("get_human", parameters={"person" = "expr(object.getPerson().getId())"}) The response is only the data without serialization link: Postman Response There would be a way for serialization links to be made with Hateoas in Symfony 4?
Guido T.
1

голосов
1

ответ
1.1k

Просмотры

Создание запроса PUT с помощью Robot Framework с использованием библиотеки запросов

Справочная информация: Новое в Robot Framework, но пытается при помощи RequestsLibrary вместе с Операционнаясистема и XML, чтобы автоматизировать некоторые REST тестирования на RIDE. Требование: Отправка файла с телом XML и проверки после получения ответа XML с сервера. Проблемы: Текущая настройка приводит к 500 внутренней ошибке сервера. Можно ли отправить содержимое файла XML на сервер вместо самого XML-файла? Можно ли вернуть содержимое ответа от сервера вместо кода ответа? Провели некоторое время на поиск уже для указателей, но ничего слишком полезно для большинства запросов и ответа дела с JSON вместо XML не найдено. Идеальный поток: 1) извлечь содержимое файла XML из файла в каталоге 2) отправить в качестве запроса POST к серверу URL 3) ждать ответа 4) возвращает этот ответ XML и проверить это правильный код: *** Настройки *** Библиотека Коллекции Библиотека RequestsLibrary Библиотека XML Библиотека Selenium2Library Библиотека OperatingSystem *** Test Cases *** Пример 1 Создание сеанса шлюз по протоколу HTTPS: //GatewayURL.asmx $ {file_data} = Get Binary File $ {Curdir} $ {/}data.xml $ {файлы} = Создать словарь $ {file_data} $ {ответ} = Post Request Gateway / почтовые файлы = $ {файлы} Я добавил в код, используя полезные советы. Сообщение запроса данных в словаре ОБРАЗЦА Создать URL сеанса шлюза Здесь отлаживать = 3 $ {file_data} = Получить двоичный файл $ {Curdir} $ {/} data.xml & {данные} = Создать словарь имя = $ {file_data.strip ()} & {Заголовки} = Создать словарь Content-Type = текст / XML $ {соотв} = Post Request Gateway / пост данных = $ {данные} заголовков = $ {} заголовки должны быть равны как строки $ {resp.status_code} 200 URL NB ЗДЕСЬ используется как, к сожалению, не в состоянии разделить этот URL. Отказ заключается в следующем. Не знаю, почему данные текст / XML, когда это используется для заголовка. Это вызывает ошибку сервера 500. Сообщение запроса с помощью: псевдоним = шлюз, Ури = / после, данные = заголовки = {u'Content-Type ': u'text / XML'}!, Файлы = None, allow_redirects = True 500 = 200 Я хочу, чтобы отправить содержание XML-файла а не XML файл сам как сервер «обыкновение знать, как обращаться с» файл, но будет иметь возможность «ручки» фактическое содержимое файла XML. Вы столкнулись с этой проблемой, прежде чем где РФ не принимает аргумент данных для запроса сообщения ключевых слов? Это всегда используя аргумент заголовка для данных по какой-то причине ...
RangHu
1

голосов
0

ответ
291

Просмотры

Весна загрузки файла Скачать с Range заголовка (частичная загрузка)

Я разрабатываю службы Spring загрузки Rest для загрузки файлов (либо полный файл или в диапазонах) Запрос от контроллера передается на сервисный уровень, где я сделать обработку файла и должны вернуть его. Вариант 1: Я мог читать FileInputStream побайтно и записать его непосредственно в выходной поток. Но в этом варианте, я должен буду передать объект ответа на сервисный слой, который я не хочу сделать (как уровень услуг должны быть отсоединен от веба-компонентов). Вариант 2: Передача всего массива байт из сервисного слоя в контроллер также может не быть хорошим вариантом, так как я имею дело с очень большими файлами. Вариант 3: В случае возврата всего файла, я мог бы передать FileInputStream к ResponseEntity и весной может позаботиться о потоковом но я также необходимо рассмотреть случай, когда я возвращать диапазон байтов из файла в зависимости от заголовка Range. Любые входы или направление по отношению к этому будет очень полезно. Дайте мне знать, если требуется дополнительная информация.
samo
1

голосов
0

ответ
189

Просмотры

Override ModelAttribute with Path Variable in Spring Framework

Я занимаюсь разработкой API с использованием Spring Framework и столкнулся с проблемой, которая может быть решена путем простого добавления необходимой логики в любое место у меня есть, но я думаю, что может быть элегантным решение, чтобы исправить это. У меня есть следующий метод в моем контроллере: @GetMapping ( "/ пользователь / {USERID} / разрешение") публичный список List (@PathVariable длинных USERID, критерии @ModelAttribute @Valid PermissionCriteria) {вернуться permissionService.list (критерии); } Дело в том, что в DTO У меня есть поле под названием идентификатор пользователя. Это сделано, чтобы не иметь много аргументов, идущие к методу службы. Но я хочу, чтобы это идентификатор пользователя должен быть установлен именно с пути, так как я использую URL, который указывает, что мы добавляем разрешение именно к конкретному ресурсу пользователя. Это' ев выполнимо путем добавления строки, которая использует метод установки в критериях и устанавливает значение USERID. Однако, теперь я никогда не должен забывать, чтобы добавить эту строку каждый раз, когда у меня есть такой случай. Вот почему я решил перенести его в InitBinder: @InitBinder (PERMISSIONS_CRITERIA_NAME) общественного недействительный permissionsCriteriaInitBinder (WebDataBinder связующий) {Критерий PermissionsCriteria = (PermissionsCriteria) binder.getTarget (); Optional.ofNullable (requestHelper.getUserId) () .map (Long :: parseLong) .ifPresent (критерии :: setUserId); } Это работает отлично. Идентификатор пользователя устанавливается с пути. Однако, если я указываю параметр запроса и переменную пути в то же время, даже если идентификатор пользователя устанавливается с пути в инициализации связующего, он переопределяется потом, прежде чем он идет к методу контроллера. Таким образом, это один не решает все вопросы. То, что я хочу найти, есть где-нибудь, где логика может быть поставлен, чтобы применить и к инициализации связующего (мне это нужно для проверки) и способ управления. Может быть, есть особый тип крючка или перехватчика или, по крайней мере, что-то реализовать, чтобы удовлетворить эти условия?
dvelopp
1

голосов
0

ответ
447

Просмотры

Поле xDao в yService требуется боб типа «javax.persistence.EntityManagerFactory», который не может быть найден

Вопрос очень похож на это ответил здесь и здесь, и они предлагают использовать scanBasePackages в аннотации @SpringBootApplication и она работает, чтобы найти все бобы, необходимые для автоматического подключения. Описание проблемы Однако, в одном из службы CategoryServiceImpl есть autowired дао categoryDao который имеет @PersistenceContext менеджер объекта. И моя весна загрузки приложение не может найти EntityManagerFactory, которая является точкой, где мое приложение разрывается. Это очень прямое приложение (я пытаюсь учиться). У меня есть два простых проектов. Первый из них является контроллер покоя и второй из них является проект JPA упорствовать объектов. ПЕРВЫЙ ПРОЕКТ: ОТДЫХ НАСТРОЙКА УПРАВЛЕНИЯ ПРОЕКТА Application.java (точка входа) @SpringBootApplication (scanBasePackages = { "com.example.resourcecontroller", } DAO @Repository общественного класса CategoryDaoImpl реализует CategoryDao {@PersistenceContext личное EntityManager ет; } ** Применение конфигурации ** @Configuration @EnableTransactionManagement @ComponentScans (значение = {@ComponentScan ( "com.example.dao"), @ComponentScan ( "com.example.service")}) общественного класса AppConfig {@Bean общественного LocalEntityManagerFactoryBean geEntityManagerFactoryBean () {LocalEntityManagerFactoryBean factoryBean = новый LocalEntityManagerFactoryBean (); factoryBean.setPersistenceUnitName ( "LOCAL_PERSISTENCE"); вернуться factoryBean; }} @ComponentScan ( "com.example.service")}) общественного класса AppConfig {@Bean общественного LocalEntityManagerFactoryBean geEntityManagerFactoryBean () {LocalEntityManagerFactoryBean factoryBean = новый LocalEntityManagerFactoryBean (); factoryBean.setPersistenceUnitName ( "LOCAL_PERSISTENCE"); вернуться factoryBean; }} @ComponentScan ( "com.example.service")}) общественного класса AppConfig {@Bean общественного LocalEntityManagerFactoryBean geEntityManagerFactoryBean () {LocalEntityManagerFactoryBean factoryBean = новый LocalEntityManagerFactoryBean (); factoryBean.setPersistenceUnitName ( "LOCAL_PERSISTENCE"); вернуться factoryBean; }}
Geek
1

голосов
1

ответ
81

Просмотры

Swift удаленного поиска аварий Tableview

Эй, у меня есть TableView с панелью поиска поверх него. Я прошу удаленный покой апи с поиском термином. Searchbar FUNC выглядит следующим образом (по данным на этот пост: Как душить поиска (в зависимости от скорости набора текста) в IOS UISearchBar) функ SearchBar (_ SearchBar: UISearchBar, textDidChange SearchText: String) {NSObject.cancelPreviousPerformRequests (withTarget: Я, селектор : #selector (self.searchTeams), объект: ноль) self.perform (#selector (self.searchTeams), с: ноль, afterDelay: 0,3)} в searchTeams-Func выглядит так, она вызывает функцию асинхронность loadingJSON с микросхемой обработчик завершения: loadingJSON ( "APIPATH", postString: "STRING") {parseJSON в случае (String (описание: parseJSON) == "-1") {Print ( "Нет Интернет")} еще {если позволить командам = parseJSON [ " в AnyObject)})} вернуться, если позволить httpStatus = ответ как? HTTPURLResponse, httpStatus.statusCode = 200 {// Проверка на наличие ошибок HTTP печати ( "StatusCode должно быть 200, но \ (httpStatus.statusCode)") печать ( "ответ = \ (String (описывающего: ответ))")}! // JSON преуспевающим сделать {пусть parseJSON = попробовать JSONSerialization.jsonObject (с помощью: данные !, варианты: .allowFragments) DispatchQueue.main.async (выполнить: {completionHandler (parseJSON в AnyObject)}); } Поймать пусть ошибку как NSError {Print ( "Не удалось загрузить: \ (error.localizedDescription)")}} task.resume ()} = 200 {// Проверка на наличие ошибок HTTP печати ( "StatusCode должно быть 200, но \ (httpStatus.statusCode)") печать ( "ответ = \ (String (описывающего: ответ))")} // JSON преуспевающим сделать { пусть parseJSON = попробовать JSONSerialization.jsonObject (с: данные !, опции: .allowFragments) DispatchQueue.main.async (выполнение: {completionHandler (parseJSON в AnyObject)}); } Поймать пусть ошибку как NSError {Print ( "Не удалось загрузить: \ (error.localizedDescription)")}} task.resume ()} = 200 {// Проверка на наличие ошибок HTTP печати ( "StatusCode должно быть 200, но \ (httpStatus.statusCode)") печать ( "ответ = \ (String (описывающего: ответ))")} // JSON преуспевающим сделать { пусть parseJSON = попробовать JSONSerialization.jsonObject (с: данные !, опции: .allowFragments) DispatchQueue.main.async (выполнение: {completionHandler (parseJSON в AnyObject)}); } Поймать пусть ошибку как NSError {Print ( "Не удалось загрузить: \ (error.localizedDescription)")}} task.resume ()} )} // JSON преуспевающим сделать {пусть parseJSON = попробовать JSONSerialization.jsonObject (с: данные !, опции: .allowFragments) DispatchQueue.main.async (выполнить: {completionHandler (parseJSON в AnyObject)}); } Поймать пусть ошибку как NSError {Print ( "Не удалось загрузить: \ (error.localizedDescription)")}} task.resume ()} )} // JSON преуспевающим сделать {пусть parseJSON = попробовать JSONSerialization.jsonObject (с: данные !, опции: .allowFragments) DispatchQueue.main.async (выполнить: {completionHandler (parseJSON в AnyObject)}); } Поймать пусть ошибку как NSError {Print ( "Не удалось загрузить: \ (error.localizedDescription)")}} task.resume ()}
Marco Weber
1

голосов
0

ответ
55

Просмотры

JAXRS См JSON быть вывешенным от клиента на стороне лица

Добрый вечер, у меня есть довольно простой веб-клиент, который размещает данные в другую службу. Я столкнулся с некоторыми проблемами, делающих звонки и другие услуги, хочет, чтобы я, чтобы показать, что именно JSON я посылаю более. Есть ли способ, либо принять Entity и посмотреть, что JSON JAX-RS создает комментарий? Или даже, как я могу видеть то, что JSON, передаваемый по фактически выглядит? Клиент Клиент = ClientBuilder.newClient (); WebTarget WebTarget = client.target (URL); Invocation.Builder invocationBuilder = webTarget.request (MediaType.APPLICATION_JSON); CustomObject Foo = новый CustomObject (); Сущность entityToPost = Entity.entity (Foo, MediaType.APPLICATION_JSON) соответственно отклика = invocationBuilder.post (entityToPost); В этом случае я хотел бы знать, что Foo выглядит, как JSON. Edit: К сожалению, я не»
OvaltineJenkins
1

голосов
0

ответ
297

Просмотры

Добавьте CA сертификат клиента Клиенту Advance Rest

Привет Я хотел бы добавить CA сертификат клиента Клиенту Advance Rest. Итак, как я могу добавить сертификат авансового клиента отдыха?
user9298974
1

голосов
0

ответ
34

Просмотры

В REST API, что является недостаток наличия информации о состоянии или информации, ориентированной на ресурс, в заголовке запроса HTTP?

В REST API, что является недостаток наличия информации о состоянии или информации, ориентированной на ресурс, в заголовке запроса HTTP? (В отличие от того, информацию о состоянии в теле запроса или URL, а также информации, нацеленной на ресурс в URL.) Если да, то почему? Если нет, то почему? Это мои мысли: ресурсы должны быть направлены на информацию о состоянии изменить URL-путь должен быть в теле запроса или URL-пути. заголовки мета-данные, и не должны использоваться для идентификации ресурса или состояний для GETs, кэширование прокси только кэшировать URL, поэтому, если часть описания ресурса находится в заголовке, информация заголовка не будет кэшироваться, в результате чего плохие строки запроса данных кэша должны содержать мета-данных о запросе, например, пейджинговой информации
StvnBrkdll
1

голосов
0

ответ
90

Просмотры

Дизайн успокоительного обновления идемпотентного огромного подмножества коллекции ресурсов

Введение Это следовать до Как создать RESTful ресурс коллекции? , Я думаю, что главная проблема объемных обновлений ресурсов (и навалочных удаление) до сих пор не решена в предоставленных ответов. Таким образом, этот новый вопрос. Давайте предположим, что у меня есть коллекция ресурс элементов http://example.com/items я могу восстановить один элемент через его ITEM_ID с GET http://example.com/items/{item_id} и запросить обновление одного элемента с PUT http://example.com/items/{item_id} Особенно хорошей о PUT является: это идемнотентный: 4.2.2 идемпотентными методы метод запроса считаются «идемпотентными», если предполагаемый эффектом на сервере нескольких идентичных запросов с этот способ является таким же, как эффект для одного такого запроса. Из методов запроса, определенных в данной спецификации, PUT, DELETE и безопасные методы запроса идемпотентны. Проблема Я хочу обновить несколько элементов в одном запросе. У меня есть несколько вариантов, которые кажутся несомненно «RESTful», но имеют свои недостатки. запросить PUT на сбор и отправить все элементы в запросе. (Слишком много накладных расходов, если только небольшая часть коллекции на самом деле меняется). запрашивать заплатку или POST на коллекции (не идемпотентна). Как PUT и DELETE являются единственными методами идемнотентные и DELETE явно не предназначены для этого (раздел 4.3.5 rfc7231 см) мне нужно придерживаться PUT. Вопросы Как я могу добиться этого с «RESTful API» избежать указанных выше недостатков? Соответствует ли следующее предлагаемое API с REST? Если нет, то почему? А какие изменения могли бы заставить его работать? Это тот случай, когда я на самом деле не могу или не должен соответствовать REST? Предложение В качестве возможного решения я придумал следующее. Добавить ресурс для запросов на обновление, которое изменяет коллекцию элементов. http://example.com/updateitems Это только разрешает / принимают запросы PUT (в том, что RESTful?) с многочастным / смешанным. Просьбы прислать список полных представлений элементов, которые должны быть обновлены. Сервер затем обновляет базу данных элементов и не возвращает 204 (без содержания) с заголовком ссылкой на обновленных отдельные элементы. Как GET не допускается, нет «Последующий GET» запрос на тот ресурс, который может нарушить обязательство PUT HTTP, чтобы иметь «эквивалентное представление» для представления запроса на Помещенный в. (Раздел rfc7231 см 4.3.4), сервер может осуществлять обновление в идемпотентном пути. Проблемы, связанные с этим подходом: Я не понял, но как сделать это HATEOAS требованиям. Возможно, там должно быть «коллекция» ссылка в каждом пунктов / {} ITEM_ID представления ресурса к ресурсу предметов и ссылку «изменить», который указывает на ресурс updateitems. Должен ли я скрыть возможность поставить один элемент для того, чтобы указать клиент к «массовому редактированию»? (ср IANA ссылка отношения) Мне кажется, как будто мой подход соответствует любой REST или HTTP-требование, что я могу думать. Тем не менее, у меня сложилось впечатление, что я каким-то образом злоупотребили семантику и клиенты будут иметь трудное время выяснить, как на самом деле использовать этот API. Какие-нибудь мысли? Заранее спасибо! IANA ссылка отношения) мне кажется, как будто мой подход соответствует любой REST или HTTP-требование, что я могу думать. Тем не менее, у меня сложилось впечатление, что я каким-то образом злоупотребили семантику и клиенты будут иметь трудное время выяснить, как на самом деле использовать этот API. Какие-нибудь мысли? Заранее спасибо! IANA ссылка отношения) мне кажется, как будто мой подход соответствует любой REST или HTTP-требование, что я могу думать. Тем не менее, у меня сложилось впечатление, что я каким-то образом злоупотребили семантику и клиенты будут иметь трудное время выяснить, как на самом деле использовать этот API. Какие-нибудь мысли? Заранее спасибо!
nCessity
1

голосов
2

ответ
329

Просмотры

Jersey2: Consumes APPLICATION_FORM_URLENCODED and MULTIPART_FORM_DATA together

Я использую Джерси в первый раз. Я просто хочу, чтобы моя служба принимает как APPLICATION_FORM_URLENCODED и MULTIPART_FORM_DATA после формы, так же как и в Django или PHP. Еще лучше, я хочу APPLICATION_JSON также работает. Так что я попытался код ниже в моем классе UserResource: @POST @Consumes ({MediaType.APPLICATION_FORM_URLENCODED, MediaType.APPLICATION_JSON, MediaType.MULTIPART_FORM_DATA}) @Produces (MediaType.APPLICATION_JSON) CreateUser общественности пользователя (@FormDataParam ( "имя пользователя") @FormParam ( "имя пользователя") Строка имя пользователя, @FormDataParam ( "пароль") @FormParam ( "пароль") Строка пароля, @FormDataParam ( "мобильный") @FormParam ( "мобильный") Строка мобильного, @FormDataParam ( "электронная почта") @ FormParam ( "электронная почта") Строка почты) {пользователь User = новый пользователь (); пользователь. setUsername (имя пользователя); user.setMobile (мобильный); user.setEmail (электронная почта); user.setPlainPassword (пароль); userDao.save (пользователь); возвращать пользователя; } Тогда я успех с й-WWW-URL-форм-urlencoded представить, но когда я подать с многочастными / данными формы, она идет вниз: И когда я удалить @FormParam аннотации, он не может принять й-WWW-url-форм-urlencoded представить и шоу: Так вот мой вопрос: 1. есть ли способ, чтобы заставить их работать вместе? 2. Есть ли тип Param как @JsonParam, который принимает запрос формы типа приложения / JSON? И когда я удалить @FormParam аннотации, он не может принимать е-WWW-URL-форм-urlencoded Submit, и шоу: Так вот мой вопрос: 1. Есть ли способ, чтобы заставить их работать вместе? 2. Есть ли тип Param как @JsonParam, который принимает запрос формы типа приложения / JSON? И когда я удалить @FormParam аннотации, он не может принимать е-WWW-URL-форм-urlencoded Submit, и шоу: Так вот мой вопрос: 1. Есть ли способ, чтобы заставить их работать вместе? 2. Есть ли тип Param как @JsonParam, который принимает запрос формы типа приложения / JSON?
Alfred Huang

Просмотр дополнительных вопросов