POST - Query API
Genel Bakış
Sorgu API'si, filtreleme ve sıralama yetenekleriyle nesneleri aramak için kullanılan API'dir. Bu, TheHive 4 tarafından tanıtılan ve yeni veri modeli için optimize edilmiş bir API'dir.
TheHive, önceden tanımlanmış arama Sorguları listesiyle birlikte gelir:
listOrganisationlistUserlistAlertlistCase
Sorgu API isteğinin gövdesi aşağıdaki alanlara sahip bir nesne olmalıdır:
query required: farklı türlerde işlemlerden oluşan bir dizi:
-
Seçim: gerekli
- nesnelerin listesi
- tanımlayıcıya göre nesne
- nesnelerin listesi
-
Filtreleme: isteğe bağlı
- Sıralama: isteğe bağlı
- Sayfalandırma: isteğe bağlı
excludeFields isteğe bağlı: alan adlarından oluşan bir dizi.
Örnekler
- Basit Liste:
{
"query": [
{
"_name": "listOrganisation"
}
]
}
- Filtreli liste:
{
"query": [
{
"_name": "listOrganisation"
},
{
"_name": "filter",
"_eq": {
"_field": "name",
"_value": "admin"
}
}
]
}
- Sayfalandırmalı liste:
Admin adı verilen organizasyonları listeler, yükselen _updatedAt değerine göre sıralanır, ilk 15 öğeyi görüntülemek için sayfalandırılır.
{
"query": [
{
"_name": "listOrganisation"
},
{
"_name": "filter",
"_eq": {
"_field": "name",
"_value": "admin"
}
},
{
"_name": "sort",
"_fields": [
{
"_updatedAt": "asc"
}
]
},
{
"_name": "page",
"from": 0,
"to": 15
}
]
}
- Zincirleme sorgular:
Kimliği ~1234 olan vaka için gözlemlenebilirleri listeleyin
{
"query": [
{
"_name": "getCase",
"idOrName": "~1234"
},
{
"_name": "observables"
},
{
"_name": "page",
"from": 0,
"to": 15
}
]
}
- Alanları hariç tutun:
{
"query": [
{
"_name": "listCase"
}
],
"excludeFields": ["description", "summary"]
}
Filtreler
Mevcut filtreler:
_and:{"_and": [...other filters] }_or:{"_or": [...other filters] }_not:{"_not": { other filter } }_any:{"_any": null}herhangi bir varlıkla eşleşir_lt:{"_lt": {"_field": "<field>", "_value": <value>}daha az_gt:{"_gt": {"_field": "<field>", "_value": <value>}daha büyük_lte:{"_lte": {"_field": "<field>", "_value": <value>}eşit veya daha az_gte:{"_gte": {"_field": "<field>", "_value": <value>}daha büyük veya eşit_ne:{"_ne": {"_field": "<field>", "_value": <value>}eşit değil_eq:{"_eq": {"_field": "<field>", "_value": <value>}eşit_is:{"_is": {"_field": "<field>", "_value": <value>}aynı şekilde_eq_startsWith:{"_startsWith": {"_field": "<field>", "_value": "<value>"}dizesi ile başlar_endsWith:{"_endsWith": {"_field": "<field>", "_value": "<value>"}dizesi ile biter_id:{"_id": "~123"}kimliğe göre filtrele_between:{"_between": {"_field": "<field>", "_from": <from>, "_to": <to>}}aralık filtresi, from kapsayıcıdır, to özeldir, her ikisi de zorunludur_in:{"_in": {"_field": "<field>", "_values": [<value1>, ...] }}alan bu değerlerden biridir_contains:{"_contains": "<field>"}bir nesne bu alanı içeriyorsa_like:{"_like": {"_field": "<field>", "_value": "<value>"}alan (veya dizin türüne bağlı olarak bir sözcük) alt dizeyi içerir_match:{"_match": {"_field": "<field>", "_value": "<value>"}alan şu kelimeyi içerir
Sıralama
Kullanım: {"_name": "sort", "fields": [ {"<field>": "<direction>" }, ... ]}
Yön(direction), asc veya desc olabilir.
Sayfalama ve Ek Veriler
Basit sayfalama: {"_name": "page", "from": 0, "to": 30}
Nesne ile ek veri iste: {"_name": "page", "from": 0, "to": 30, "extraData": ["shareCount", "contributors"] }
Nesnenin extraData alanı, seçilen alanları içeren bir JSON nesnesini içerecektir. Kullanılabilir ek veriler, istenen varlığa bağlıdır.


