Я пишу, чтобы сообщить о критической проблеме с общедоступным API Mendeley Data (data.mendeley.com), которая не позволяет мне программно получать доступ к наборам данных.
Описание проблемы
Конечные точки API данных Mendeley не возвращают правильные данные. В частности:
Проблема 1: API поиска возвращает нерелевантные результаты
Запрос:
Код: Выделить всё
GET https://data.mendeley.com/api/datasets?search=USDA&limit=100
Фактический результат: API возвращает наборы данных, которые не имеют никакого отношения к поисковому запросу «USDA». Например, мы получаем наборы данных о «Палеомагнитных исследованиях в Мексике», «Исследованиях диабета», «Статистике гендерного насилия» и т. д. Ни один из них не содержит «USDA» где-либо в своих метаданных.
Проблема 2: прямой поиск по идентификатору набора данных возвращает неверные данные
Запрос:
Код: Выделить всё
GET https://data.mendeley.com/api/datasets/pgjvbwznk5/1
Фактический результат: API возвращает ответ JSON с {"data": {"results": [...]}} содержит 10 случайных наборов данных, ни один из которых не является запрошенным набором данных.
Проблема 3: API игнорирует параметры URL
Как версионированные, так и неверсионные URL-адреса возвращают один и тот же неверный список с разбивкой на страницы:
- → Возвращает случайные наборы данных
Код: Выделить всё
GET /api/datasets/pgjvbwznk5 - → Возвращает одни и те же случайные наборы данных
Код: Выделить всё
GET /api/datasets/pgjvbwznk5/1
Подтвержденные наборы данных, которые необходимо получить
Я проверил (через веб-браузер и поиск Google), что в данных Mendeley существуют следующие наборы данных, связанные с Министерством сельского хозяйства США:
Набор данных IDDOITtlePublishedpgjvbwznk510.17632/pgjvbwznk510.17632/pgjvbwznk5.1Набор данных спецификаций - Лаборатория лесных товаров Министерства сельского хозяйства США2024-01-18xwwsmncckr10.17632/xwwsmncckr.4USDA FoodData Central Protein Данные2024-08-05g26btxwxz910.17632/g26btxwxz9.1USDA Foods Programs Данные о питании2023-03-03ky83vw36t510.17632/ky83vw36t5.1Образцы POX C USDA2020-05-04
Эти данные наборы данных доступны через веб-интерфейс по адресу https://data.mendeley.com/datasets/{id}/{version}, но не могут быть получены через API.
Тестовый код
Вот простой скрипт Python, демонстрирующий проблему:
python
Код: Выделить всё
import requests
# Test 1: Search for USDA
response = requests.get(
"https://data.mendeley.com/api/datasets",
params={"search": "USDA", "limit": 10},
headers={"Accept": "application/json"}
)
data = response.json()
results = data.get("data", {}).get("results", [])
print("Search for 'USDA' returned:")
for r in results[:5]:
print(f" - {r.get('name', 'Unknown')}")
print(f" ID: {r.get('id')}")
# Test 2: Direct ID lookup
response = requests.get(
"https://data.mendeley.com/api/datasets/pgjvbwznk5/1",
headers={"Accept": "application/json"}
)
data = response.json()
print(f"\nDirect lookup of pgjvbwznk5/1:")
print(f" Response keys: {data.keys()}")
- Существует ли известная проблема с API данных Mendeley, о которой нам следует знать?
- Существует ли альтернативная конечная точка API, которую нам следует использовать?
- Существует ли определенный метод аутентификации, необходимый даже для общедоступных наборов данных?
- Имеются ли ориентировочные сроки, когда это можно будет исправить?
Билли
Подробнее здесь: https://stackoverflow.com/questions/798 ... sue-report
Мобильная версия