In this blog, I’ll explain the different API’s involved in the SUSI.AI Bot Builder and its working. Now if you are wondering how the SUSI.AI bot builder works or how drafts are saved, then this is the perfect blog. I’ll be explaining the different API’s grouped by different API endpoints.
API Implementation
fetchChatBots
export function fetchChatBots() {
const url = `${API_URL}/${CMS_API_PREFIX}/getSkillList.json`;
return ajax.get(url, {
private: 1,
});
}
This API is used to fetch all your saved chatbots, which are displayed on the BotBuilder Page. The API endpoint is getSkillList.json. Same endpoint is used when a user creates a skill, the difference is query parameter private is passed which then returns your chatbots. Now if you are wondering why we have same endpoint for skills and chatbots, the simple plain reason for this is chatbots are your private skills.
fetchBotDetails
export function fetchBotDetails(payload) {
const { model, group, language, skill } = payload;
const url = `${API_URL}/${CMS_API_PREFIX}/getSkill.json`;
return ajax.get(url, {
model,
group,
language,
skill,
private: 1,
});
}
This API is used to fetch details of bot/skill respectively from the API endpoint getSkill.json. Group name, language, skill name, private and model are passed as query parameters.
fetchBotImages
export function fetchBotImages(payload) {
const { name: skill, language, group } = payload;
const url = `${API_URL}/${CMS_API_PREFIX}/getSkill.json`;
return ajax.get(url, {
group,
language,
skill,
private: 1,
});
}
This API is used to fetch skill and bot images from the API endpoint getSkill.json. Group name, language, skill name and private are passed as query parameters.
uploadBotImage
export function uploadBotImage(payload) {
const url = `${API_URL}/${CMS_API_PREFIX}/uploadImage.json`;
return ajax.post(url, payload, {
headers: { 'Content-Type': 'multipart/form-data' },
isTokenRequired: false,
});
}
This API is used to upload the Bot image to the API endpoint uploadImage.json.The Content-Type entity header is used to indicate the media type of the resource. multipart/form-data means no characters will be encoded. This is used when a form requires a binary data like the contents of a file or image to be uploaded.
deleteChatBot
export function deleteChatBot(payload) {
const { group, language, skill } = payload;
const url = `${API_URL}/${CMS_API_PREFIX}/deleteSkill.json`;
return ajax.get(url, {
private: 1,
group,
language,
skill,
});
}
This API is used to delete Skill and Bot from the API endpoint deleteSkill.json.
storeDraft
export function storeDraft(payload) {
const { object } = payload;
const url = `${API_URL}/${CMS_API_PREFIX}/storeDraft.json`;
return ajax.get(url, { object });
}
This API is used to store draft Bot to the API endpoint storeDraft.json. The object passed as parameter has the properties given by the user such as skill name,group etc., while saving the draft.
readDraft
export function readDraft(payload) {
const url = `${API_URL}/${CMS_API_PREFIX}/readDraft.json`;
return ajax.get(url, { ...payload });
}
This API is used to fetch draft from the API endpoint readDraft.json. This API is called on the BotBuilder Page where all the saved drafts are shown.
deleteDraft
export function deleteDraft(payload) {
const { id } = payload;
const url = `${API_URL}/${CMS_API_PREFIX}/deleteDraft.json`;
return ajax.get(url, { id });
}
This API is used to delete the saved Draft from the API endpoint deleteDraft.json. It only needs one query parameter i.e. the draft ID.
In conclusion, the above API’s are the backbone of the SUSI.AI Bot Builder. API endpoints in server ensure the user has the same experience across the clients. Do checkout implementation of different API endpoints in server here.