Inspire เป็นศูนย์กลางชุมชนที่เชื่อถือได้ที่ช่วยให้นักวิจัยแบ่งปันและค้นหาข้อมูลทางวิชาการที่ถูกต้องในฟิสิกส์พลังงานสูง นอกเหนือจากเว็บอินเตอร์เฟสปกติสำหรับการเข้าถึงเนื้อหาแบบโต้ตอบแล้ว REST API มีไว้สำหรับการเข้าถึงแบบเป็นโปรแกรม เอกสารปัจจุบันอธิบายวิธีการใช้ REST API นี้
หากคุณใช้ API ในงานวิชาการโปรดอ้างอิงโดยใช้ข้อมูลเมตาต่อไปนี้:
@article { Moskovic:2021zjs ,
author = " Moskovic, Micha " ,
title = " {The INSPIRE REST API} " ,
url = " https://github.com/inspirehep/rest-api-doc " ,
doi = " 10.5281/zenodo.5788550 " ,
month = " 12 " ,
year = " 2021 "
}
หากคุณมีปัญหาใด ๆ ที่ใช้ API ต้องการความช่วยเหลือหรือมีคำแนะนำบางอย่างสำหรับการปรับปรุง API หรือเอกสารประกอบโปรดเปิดปัญหาหรือติดต่อเรา
การใช้ API อยู่ภายใต้ข้อกำหนดการใช้งานของเรา ตามที่อธิบายไว้ในรายละเอียดเพิ่มเติมข้อมูลเมตาส่วนใหญ่มีอยู่ภายใต้ใบอนุญาต CC0 แต่มีข้อ จำกัด ในบางสาขาและไม่อนุญาตให้มีการรวบรวมที่อยู่อีเมลจำนวนมาก
API โดยทั่วไปจะหยุดพักและส่งคืนผลลัพธ์ใน JSON โดยค่าเริ่มต้น นี่หมายความว่าตัวอย่างว่าจะส่งคืนรหัสสถานะ 404 HTTP หากไม่พบบันทึก
โดยทั่วไปแล้วหน้าส่วนใหญ่ที่คุณผ่านเว็บไซต์มีการเป็นตัวแทนที่สอดคล้องกันใน API ที่ได้รับจากคำนำหน้าส่วนประกอบพา ธ ของ URL ด้วย /api/
ตัวอย่างเช่นข้อมูลที่แสดงที่
https://inspirehep.net/literature?sort=mostrecent&size=25&page=1&q=title api
สามารถใช้ได้ผ่าน API ที่
https://inspirehep.net/api/literature?sort=mostrecent&size=25&page=1&q=title api
ขณะนี้อนุญาตให้มีการดำเนินการแบบอ่านอย่างเดียวในระเบียนเท่านั้นและพวกเขาทั้งหมดใช้วิธี GET
HTTP
โปรดทราบว่าตัวอย่างทั้งหมดจะแสดงในวิธีที่มนุษย์อ่านได้ แต่พารามิเตอร์การสืบค้นมักจะต้องมีการเข้ารหัส URL โดยเฉพาะอย่างยิ่งช่องว่างจะต้องถูกแทนที่ด้วย %20
เพื่อหลีกเลี่ยงการครอบงำเซิร์ฟเวอร์เราจะบังคับใช้ขีด จำกัด อัตราต่อที่อยู่ IP: ที่อยู่ IP ทุกที่ได้รับอนุญาต 15 คำขอในหน้าต่าง 5S หากคุณเกินขีด จำกัด เหล่านั้นคุณจะได้รับการตอบกลับด้วยรหัสสถานะ HTTP 429 โปรดทราบว่าคำขอที่ถูกบล็อกเนื่องจากเกินจำนวนขีด จำกัด ของอัตราต่อโควต้าดังนั้นคุณจะต้องรออย่างน้อย 5 วินาทีเมื่อได้รับการตอบกลับ 429 ก่อนที่จะลองอีกครั้ง
ในการรับข้อมูลเมตาในบันทึกเดียวให้ใช้ URL ประเภทต่อไปนี้:
https://inspirehep.net/api/{identifier-type}/{identifier-value}
สองหมวดหมู่หลักของตัวระบุบันทึก (นั่นคือคู่ของ {identifier-type}
และ {identifier-value}
) ได้รับการสนับสนุน
สิ่งเหล่านี้เป็นตัวระบุเดียวกันที่ปรากฏใน URL บนเว็บไซต์และยังสามารถใช้สำหรับการค้นหา {identifier-type}
สามารถใช้ค่าต่อไปนี้:
literature
authors
institutions
conferences
seminars
journals
jobs
experiments
data
และ {identifier-value}
เป็นตัวเลขที่ระบุบันทึกที่กำหนดในฐานข้อมูล Inspire (เรียกอีกอย่างว่า Record ID หรือ recid
) ตัวอย่างเช่น,
https://inspirehep.net/api/literature/451647
เป็นบันทึกของกระดาษโฆษณา/CFT ที่มีชื่อเสียงของ Maldacena ในขณะที่
https://inspirehep.net/api/conferences/1642486
เป็นบันทึกของการประชุม ICHEP 2018
สิ่งเหล่านี้เป็นตัวระบุแบบถาวรที่ไม่ได้รับมอบหมายจาก Inspire แต่ยังคงระบุบันทึกใน Inspire โดยเฉพาะ (หากมีการบันทึกสำหรับตัวระบุที่เกี่ยวข้องอยู่ในระบบ)
ตัวระบุภายนอกต่อไปนี้สามารถใช้:
{identifier-type} | {identifier-value} (ตัวอย่าง) | การใช้งาน |
---|---|---|
doi | 10.1103/PhysRevLett.19.1264 | เพื่อรับบันทึกวรรณกรรมที่ได้รับ DOI |
arxiv | 1207.7214 , hep-ph/0603175 | เพื่อรับบันทึกวรรณกรรมที่ได้รับตัวระบุ arxiv |
orcid | 0000-0003-3897-046X | เพื่อรับบันทึกผู้เขียนที่ได้รับรหัส Orcid |
ตัวอย่างเช่น,
https://inspirehep.net/api/orcid/0000-0002-9079-593X
เป็นบันทึกผู้เขียนของ Stephen Hawkings หรือไม่
โดยค่าเริ่มต้นการตอบสนอง API เมื่อดึงบันทึกเดียวจะอยู่ในรูปแบบ JSON และมีคีย์ต่อไปนี้:
สำคัญ | คำอธิบาย |
---|---|
id | ตัวระบุที่ใช้ในการเรียกคืนบันทึก |
created | การประทับเวลาการสร้างบันทึกใน UTC |
updated | การอัปเดตครั้งสุดท้ายของบันทึกใน UTC |
links | ลิงก์ไปยังทรัพยากรที่เกี่ยวข้องกับบันทึก |
metadata | ข้อมูลเมตาของบันทึก |
ไม่ว่าจะใช้ตัวระบุใด ๆ เพื่อเรียกคืนบันทึกมันจะมีอยู่ (เช่นเดียวกับตัวระบุอื่น ๆ ที่อยู่ในบันทึกนี้) ภายใน metadata
วัตถุ links
มีลิงก์ไปยังข้อมูลเมตาที่เกี่ยวข้องกับบันทึกนี้ แต่ไม่รวมอยู่ในบันทึกโดยตรง (เช่นข้อมูลการอ้างอิง) และรูปแบบการทำให้เป็นอนุกรมทางเลือก (เช่น Bibtex)
วัตถุ metadata
มีข้อมูลเมตาของบันทึกที่เหมาะสม ระเบียนทั้งหมดมีคีย์ $schema
ซึ่งเชื่อมโยงไปยังสคีมา JSON (ร่าง 4) ว่าข้อมูลเมตาของบันทึก เอกสารรายละเอียดเกี่ยวกับฟิลด์ที่เป็นไปได้สำหรับแต่ละสคีมาและความหมายของพวกเขาสามารถพบได้ในเอกสารประกอบสคีมา
ตัวอย่างเช่น metadata
ของการบันทึก Literature
สอดคล้องกับ Schema hep
ซึ่งมีการบันทึกฟิลด์ที่นี่
เป็นไปได้ที่จะได้รับการเป็นตัวแทนของระเบียน (หรือหลายระเบียน) ในรูปแบบที่แตกต่างจาก JSON เริ่มต้น สามารถทำได้ในสองวิธีทางเลือก:
format={format-name}
Accept
เป็นประเภท MIME เฉพาะ ปัจจุบันสนับสนุนรูปแบบต่อไปนี้ (สำหรับบันทึก Literature
เท่านั้น):
{format-name} | ประเภท MIME | คำอธิบาย |
---|---|---|
JSON | แอปพลิเคชัน/JSON | รูปแบบ JSON เริ่มต้น |
bibtex | แอปพลิเคชัน/x-bibtex | รูปแบบการอ้างอิง bibtex |
น้ำยาง | แอปพลิเคชัน/vnd+inspire.latex.eu+x-latex | รูปแบบการอ้างอิง LaTex (EU) |
น้ำยาง | แอปพลิเคชัน/vnd+inspire.latex.us+x-latex | รูปแบบการอ้างอิง LaTex (US) |
CV | ข้อความ/vnd+inspire.html+html | รูปแบบการอ้างอิง CV HTML |
ลิงก์ไปยังรูปแบบทางเลือกสามารถพบได้ในวัตถุ links
ภายในการตอบสนอง JSON
ตัวอย่างเช่นเพื่อให้ได้กระดาษที่มีชื่อเสียงของ Glashow เกี่ยวกับการโต้ตอบที่อ่อนแอในรูปแบบ Bibtex ให้ใช้พารามิเตอร์รูปแบบ:
https://inspirehep.net/api/literature/4328?format=bibtex
หรือเท่าเทียมกันการเจรจาต่อรองเนื้อหา (ตัวอย่างใช้เครื่องมือบรรทัดคำสั่ง curl
เพื่อตั้งค่าส่วนหัว):
curl -H "Accept: application/x-bibtex" https://inspirehep.net/api/literature/4328
เพื่อให้ได้ผลลัพธ์สำหรับการค้นหาแทนที่จะรับข้อมูลของบันทึกเดียวโดยตัวระบุให้ใช้ URL พื้นฐานของแบบฟอร์มต่อไปนี้:
https://inspirehep.net/api/{record-type}?{query-string}
{record-type}
ต้องเป็นหนึ่งใน:
literature
authors
institutions
conferences
seminars
journals
jobs
experiments
data
โปรดทราบว่าสิ่งเหล่านี้เหมือนกับประเภทตัวระบุภายใน
{query-string}
อาจมี {parameter}={value}
หลายคู่คั่นด้วย &
รองรับพารามิเตอร์ต่อไปนี้เสมอ:
{parameter} | คำอธิบายของ {value} |
---|---|
q | ข้อความค้นหา |
sort | ลำดับการเรียงลำดับ |
size | จำนวนผลลัพธ์ที่ส่งคืนต่อหน้า |
page | หมายเลขหน้า |
fields | ฟิลด์ในข้อมูลเมตาที่จะส่งคืน |
นอกจากนี้ขึ้นอยู่กับ {record-type}
ตัวกรอง facet ที่แตกต่างกันจะพร้อมใช้งานเพื่อ จำกัด ชุดผลลัพธ์ พวกเขาทำงานในลักษณะเดียวกับบนเว็บไซต์
ตัวอย่างเช่นเพื่อให้ได้การประชุมที่จะเกิดขึ้นครั้งที่ 6 ถึง 10 สามารถใช้ URL ต่อไปนี้ได้:
https://inspirehep.net/api/seminars?size=5&page=2&start_date=upcoming
เพื่อให้ได้ 10 เอกสารล่าสุดที่อ้างถึงอย่างน้อย 1,000 ครั้งใช้:
https://inspirehep.net/literature?sort=mostrecent&size=10&q=topcite 1000+
อาร์กิวเมนต์ q
Query string อนุญาตให้ระบุคำค้นหาการค้นหาที่ตรงกับชุดย่อยของระเบียนเท่านั้น
สำหรับบันทึกวรรณกรรม (ได้รับผ่านจุดสิ้นสุด /api/literature
) ไวยากรณ์การค้นหาที่กำหนดเองใช้สำหรับความเข้ากันได้ย้อนหลังกับยอดแหลมและแรงบันดาลใจเก่า มีการอธิบายที่นี่ นอกจากนี้ฟิลด์ของข้อมูลเมตาเร็กคอร์ดใด ๆ สามารถค้นหาได้โดยใช้เส้นทางที่กำหนดโดยการเชื่อมต่อคีย์ซ้อนกัน .
ตามด้วย A :
และค่าที่จะค้นหา
ตัวอย่างเช่นในการค้นหาเอกสารทั้งหมดที่มีนามธรรมจาก Springer การค้นหาต่อไปนี้สามารถใช้:
https://inspirehep.net/api/literature?q=abstracts.source:Springer
ในการค้นหาเอกสารการประชุมทั้งหมดที่อ้างถึง Edward Witten คุณสามารถใช้:
https://inspirehep.net/api/literature?q=tc conference paper and refersto a E.Witten.1
ในการตรวจสอบว่ามีฟิลด์อยู่หรือไม่คุณสามารถใช้ A *
Wildcard ตัวอย่างเช่นในการค้นหาเอกสารทั้งหมดที่มี DOI คุณสามารถใช้:
https://inspirehep.net/api/literature?q=dois.value:*
สำหรับระเบียนประเภทอื่น ๆ จะใช้ไวยากรณ์สตริงแบบสอบถาม Elasticsearch ที่นี่เช่นกันฟิลด์ของข้อมูลเมตาเร็กคอร์ดใด ๆ สามารถค้นหาได้โดยใช้เส้นทางที่กำหนดโดยการเชื่อมต่อคีย์ซ้อนกัน .
ตามด้วย A :
และค่าที่จะค้นหา
ตัวอย่างเช่นในการค้นหาการทดลองทั้งหมดโดยใช้ตัวเร่งความเร็ว CERN Proton-Synchotron (PS) ใช้
https://inspirehep.net/api/experiments?q=accelerator.value:PS
ในทำนองเดียวกันเพื่อค้นหาผู้แต่งที่มี ID Inspire ที่กำหนดใช้
https://inspirehep.net/api/authors?q=ids.value:INSPIRE-00140145
ลำดับที่ผลการค้นหาจะถูกส่งคืนขึ้นอยู่กับว่ามีการระบุการค้นหาหรือไม่
โดยค่าเริ่มต้น
q
Query) ผลลัพธ์จะถูกเรียงลำดับด้วยระเบียนล่าสุดก่อนq
) ผลลัพธ์จะถูกจัดเรียงด้วยคำที่เกี่ยวข้องมากที่สุดก่อน พฤติกรรมนี้สามารถแทนที่ด้วยพารามิเตอร์การสืบค้น sort={sort-order}
พารามิเตอร์ รองรับตัวเลือกต่อไปนี้:
{record-type} | {sort-order} | คำอธิบาย |
---|---|---|
literature | mostrecent | บันทึกล่าสุดปรากฏขึ้นก่อน (ขึ้นอยู่กับวันที่เร็วที่สุดในข้อมูลเมตา) |
literature | mostcited | บันทึกที่มีการอ้างอิงส่วนใหญ่ปรากฏขึ้นก่อน |
jobs | mostrecent | งานที่สร้างขึ้นล่าสุดจะปรากฏขึ้นก่อน |
jobs | deadline | งานที่มีกำหนดส่งครั้งแรกปรากฏขึ้นก่อน |
conferences | dateasc | การประชุมที่มีวันเริ่มต้นเร็วที่สุดปรากฏขึ้นก่อน |
conferences | datedesc | การประชุมที่มีวันเริ่มต้นล่าสุดปรากฏขึ้นก่อน |
seminars | dateasc | สัมมนาที่มีเวลาเริ่มต้นเร็วที่สุดปรากฏขึ้นก่อน |
seminars | datedesc | สัมมนาที่มีเวลาเริ่มต้นล่าสุดปรากฏขึ้นก่อน |
ตัวอย่างเช่น URL ต่อไปนี้จะส่งคืนเอกสารที่อ้างถึงมากที่สุด 10 ฉบับของ Edward Witten:
https://inspirehep.net/api/literature?sort=mostcited&size=10&q=a E.Witten.1
ผลการค้นหาจะถูกส่งคืนในหน้าเพื่อ จำกัด ขนาดของการตอบสนอง โดยค่าเริ่มต้นผลลัพธ์ 10 รายการจะถูกส่งคืนต่อหน้าและหน้าแรกของผลลัพธ์จะถูกส่งคืน หากต้องการไปยังหน้าถัดไปคุณสามารถส่งหมายเลขหน้าไปยังพารามิเตอร์การสืบค้น page
ตัวอย่างเช่นใช้ URL ต่อไปนี้เพื่อรับเอกสารที่อ้างถึงมากที่สุดในวันที่ 31 ถึง 40 ของ Edward Witten
https://inspirehep.net/api/literature?sort=mostcited&page=3&q=a E.Witten.1
หากต้องการไปที่หน้าถัดไป URL next
ของวัตถุ links
ในการตอบกลับสามารถติดตามได้ (เมื่อใช้รูปแบบ JSON เริ่มต้น)
จำนวนผลลัพธ์ต่อหน้าสามารถแทนที่ด้วยพารามิเตอร์การสืบค้น size
เพื่อไม่ให้โอเวอร์โหลดเซิร์ฟเวอร์ค่าสูงสุดที่อนุญาตคือ 1000
และคุณจะได้รับการตอบกลับด้วยรหัสสถานะ HTTP 400 หากคุณเกินกว่า
ตัวอย่างเช่นเพื่อให้ได้ 50 เอกสารที่อ้างถึงมากที่สุดของ Edward Witten ในครั้งเดียวสามารถใช้ URL ต่อไปนี้ได้:
https://inspirehep.net/api/literature?sort=mostcited&size=50&q=a E.Witten.1
โปรดทราบว่านอกเหนือจากขีด จำกัด ของผลลัพธ์ที่ส่งคืนต่อหน้าขณะนี้มีข้อ จำกัด ทางเทคนิคในการป้องกันการดึงผลลัพธ์มากกว่า 10,000 ผลลัพธ์สำหรับการค้นหาที่กำหนด วิธีแก้ปัญหาคือการแบ่งการค้นหาครั้งเดียวในการค้นหาหลายครั้งที่มีผลลัพธ์น้อยกว่า 10,000 รายการ ดูความคิดเห็นนี้สำหรับข้อมูลเพิ่มเติม
การตอบสนองสำหรับการค้นหาเป็นวัตถุ JSON ที่มีคีย์ต่อไปนี้:
hits
: มีจำนวนทั้งหมดของผลลัพธ์ total
และบันทึกใน hits
(ซึ่งเป็นอาร์เรย์ที่องค์ประกอบมีโครงสร้างเช่นเดียวกับในการตอบสนองแบบบันทึกเดียว)links
: ลิงก์ไปยังแหล่งข้อมูลที่เกี่ยวข้องเช่นการสร้างอนุกรมทางเลือกของผลการค้นหาและหน้าถัดไปใน next
โปรดทราบว่าข้อมูลเมตาเร็กคอร์ด (ใน hits.hits.metadata
) มีฟิลด์มากกว่าในการตอบสนองแบบบันทึกเดียว ส่วนใหญ่มีไว้สำหรับการใช้งานภายใน: ฟิลด์ใด ๆ ที่ไม่ได้เป็นส่วนหนึ่งของสคีมาไม่ควรพึ่งพาและไม่มีการรับประกันว่ามันจะยังคงอยู่หรือเนื้อหาของมันจะไม่เปลี่ยนแปลง ยกเว้น:
/api/literature
สำคัญ | ค่า (ตัวอย่าง) | คำอธิบาย |
---|---|---|
earliest_date | 2020-03-18 | วันที่เร็วที่สุดในบันทึก |
citation_count | 243 | จำนวนการอ้างอิงทั้งหมดที่ได้รับจากบันทึกนี้ |
citation_count_without_self_citations | 213 | จำนวนการอ้างอิงที่ได้รับจากบันทึกนี้ไม่รวมการเรียกร้องตนเอง |
บางครั้งคุณอาจสนใจเฉพาะสาขาเฉพาะของข้อมูลเมตาบันทึกและไม่ได้อยู่ในบันทึกทั้งหมด เพื่อหลีกเลี่ยงการสร้างและดาวน์โหลดการตอบสนองเต็มรูปแบบซึ่งอาจมีขนาดค่อนข้างใหญ่พารามิเตอร์การสืบค้น fields
สามารถใช้งานได้ ควรตั้งค่าเป็นรายการฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคที่ต้องมีอยู่ในข้อมูลเมตาเร็กคอร์ด
ตัวอย่างเช่น URL ต่อไปนี้จะส่งคืนเฉพาะชื่อชื่อผู้แต่งและลิงก์ไปยังบันทึกการเป็นพันธมิตรของเอกสารที่มีมากกว่า 1,000 การอ้างอิง:
https://inspirehep.net/api/literature?fields=titles,authors.full_name,authors.affiliations.record&q=topcite 1000+
การกรองข้อมูลเมตามีเฉพาะในการค้นหาไม่ใช่สำหรับการตอบกลับระเบียนเดียว อย่างไรก็ตามหากคุณรู้จักตัวระบุบันทึกที่คุณต้องการได้รับข้อมูลเมตาบางส่วนสำหรับคุณสามารถทำการค้นหาตัวระบุนั้นซึ่งจะส่งคืนเพียงหนึ่งระเบียน
ตัวอย่างเช่น URL ต่อไปนี้จะให้จำนวนการอ้างอิงของบันทึกที่ https://inspirehep.net/api/literature/4328:
https://inspirehep.net/api/literature?fields=citation_count&q=recid:4328
โปรดทราบว่ามันเป็นไปไม่ได้ที่จะ จำกัด จำนวนองค์ประกอบของอาร์เรย์ แต่เลือกเฉพาะว่าอาร์เรย์นั้นควรปรากฏขึ้นเลย ตัวอย่างเช่นมันเป็นไปไม่ได้ที่จะเลือกเฉพาะผู้เขียน 10 คนแรกเท่านั้น แต่เป็นไปได้ที่จะหลีกเลี่ยงการกลับมาผู้เขียนโดยไม่ใส่ authors
(หรือสาขาย่อยใด ๆ ) ในหมู่ fields
นอกเหนือจากฐานข้อมูลบรรณานุกรมแล้ว Inspire ยังนำเสนอเครื่องมือในการสร้างบรรณานุกรมจากไฟล์เท็กซ์ที่มีคำสั่ง cite{...}
(หรือตัวแปร) ด้วยคีย์ที่เคารพอนุสัญญาเฉพาะที่อนุญาตให้ระบบอนุมานบันทึกที่อ้างถึง คำแนะนำโดยละเอียดเพิ่มเติมมีอยู่ในเครื่องมือแบบโต้ตอบ
ในการเข้าถึงผ่าน API คุณต้องทำการร้องขอโพสต์ไปยังจุดสิ้นสุดที่ https://inspirehep.net/api/bibliography-generator
พร้อมข้อมูลต่อไปนี้:
format
ที่มีค่าเป็น bibtex
, latex_eu
หรือ latex_us
ขึ้นอยู่กับรูปแบบบรรณานุกรมที่ต้องการfile
เดียวที่มีไฟล์ที่เข้ารหัสแบบฟอร์มเป็นอาร์กิวเมนต์ การตอบสนองจะเป็นวัตถุ JSON ที่มีคีย์ data
เดียวซึ่งค่าเป็นวัตถุที่มี URL ไปยังไฟล์บรรณานุกรมที่สร้างขึ้นภายใต้ download_url
และอาร์เรย์ของข้อผิดพลาดที่พบภายใต้ errors
(ซึ่งว่างเปล่าหากไม่มีข้อผิดพลาดในกระบวนการ)
ตัวอย่างเช่นกับ curl
:
curl -XPOST -F "file=@/path/to/my/texfile.tex" "https://inspirehep.net/api/bibliography-generator?format=bibtex"
เมื่อใช้แพ็คเกจ requests
Python ยอดนิยมสามารถทำได้ตามที่อธิบายไว้ในเอกสารประกอบ
เครื่องมือหลายอย่างในภาษาต่าง ๆ กำลังใช้ API นี้ รหัสของพวกเขาอาจทำหน้าที่เป็นแหล่งที่มาของตัวอย่างในโลกแห่งความเป็นจริง
หากคุณต้องการให้โครงการของคุณอยู่ในรายการอย่าลังเลที่จะแจ้งให้เราทราบ