GraphQL API
Увод
Поред REST API-ја у Zammad-у, можете преузимати, мењати и креирати податке путем моћног и отвореног изворног GraphQL API-ја.
Ова документација не покрива све о GraphQL-u. Треба да вам пружи основно разумевање како можете преузимати и креирати/мењати податке за даље изградње. За исцрпне упутства, погледајте документацију GraphQL-a.
GraphQL користе многе веб сервисе, укључујући и велике. Постао је врста индустријског стандарда због своје ефикасности и функција. Можете прецизно затражити податке који су вам потребни, чиме се минимизирају непотребни преноси података и штеди време.
Преузимање GraphQL шеме Zammad-а (названо интроспекција) омогућава аутоматско допуњавање и валидацију на клијентској страни док пишете захтеве.
Први кораци
Праћењем следећих корака омогућићете себи успешно слање једноставног захтева и примање података из Zammad-а.
Клијенти
За слање захтева и примање одговора потребан вам је API клијент. Ако већ радите са API-јима, прескочите овај део. Ако сте нови у овој теми, потражите клијента који одговара вашим потребама. Зависно од оперативног система, можете имати различите опције. Неки примери популарних клијената са GraphQL подршком су:
Аутентификација
Ако већ није присутан, креирајте токен у профилу Zammad-а који желите да користите као API корисник. Зависно од онога што желите постићи путем API-ја, подесите дозволе одговарајуће.
Обавезно га копирајте пре затварања дијалога јер га нећете моћи поново видети. У случају грешке, једноставно креирајте нови токен.
Припремите ваш клијент
Отворите ваш API клијент и подесите га.
- Додајте ваш токен из Zammad-а као беарер токен.
- Креирајте захтев и додајте свој Zammad домен са суфиксом
/graphql, нпр.https://fastlane.inc/graphql. - Преузмите GraphQL шему Zammad-а из интроспекције или је учитајте из датотеке.
WARNING
Интроспекција шеме је омогућена за Zammad у развојном окружењу. Да бисте је омогућили за продукциона система, подесите окружењску променљиву ZAMMAD_GRAPHQL_INTROSPECTION на true. Ово повећава потенцијалну површину напада и се не препоручује.
Отворите нови тикет
Сви захтеви и одговори су у JSON формату. То значи да сва информација мора бити упакована у заграде и имати хијерархијску структуру.
Погледајмо захтев за преузимање информација из Zammad-а. Такав захтев почиње са низом query, праћеним објектом који желите да упитате.
Основан пример за преузимање корисника са њиховим именом и презименом:
gql
query userName (
$userId: ID!
) {
user(userId: $userId) {
firstname
lastname
}
}1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Променљива $userId са друге линије дефинише варијаблу која се користи као ID. У секцији за променљиве вашег клијента, наведите њену вредност. У овом примеру, секција за променљиве изгледа овако:
json
{
"userId": "gid://zammad/User/2"
}Горња вредност је у глобалном ID формату GraphQL имплементације Zammad-а. Зависно од тога који тип објекта желите да обрађујете, замените User другим објектом као што је Ticket, Organization, Group, итд. Zammad очекује нумеричку вредност као ID.
Почињући од четврте линије у горе наведеном блок кода је стварни захтев. Овај једноставан пример само преузима атрибуте firstname и lastname од корисника са ID-јем 2.
За креирање или измену података, замените query са mutation у телу захтева.
Примери
Примери користе варијабле за различите типове објеката. Обавезно поставите варијабле приликом коришћења примера.
Прилог
Затвори претрагу
INFO
Замените {ID} нумеричком вредношћу.
gid://zammad/Ticket/{ID}gid://zammad/User/{ID}gid://zammad/Organization/{ID}