एंडपॉइंट संदर्भ
यह खंड ChurchApps API द्वारा प्रदान किए गए सभी REST एंडपॉइंट का दस्तावेज़ीकरण करता है। प्रत्येक मॉड्यूल पृष्ठ हर रूट को उसके HTTP मेथड, पथ, प्रमाणीकरण आवश्यकताओं और आवश्यक अनुमतियों के साथ सूचीबद्ध करता है।
बेस URL
| एनवायरनमेंट | URL |
|---|---|
| स्थानीय विकास | http://localhost:8084 |
| प्रोडक्शन | https://api.churchapps.org |
अनुरोध परंपराएँ
- Content-Type: सभी अनुरोध और प्रतिक्रिया बॉडी
application/jsonका उपयोग करती हैं - मल्टी-टेनेंट: प्रत्येक प्रमाणित अनुरोध JWT टोकन से निकाले गए
churchIdतक स्कोप किया जाता है -- आप URL मेंchurchIdपास नहीं करते - बैच सेव: अधिकांश
POSTएंडपॉइंट ऑब्जेक्ट का एरे स्वीकार करते हैं। API एक ही कॉल में नए रिकॉर्ड (कोईidफ़ील्ड नहीं) इन्सर्ट और मौजूदा रिकॉर्ड (idफ़ील्ड के साथ) अपडेट करेगा - IDs: सभी एंटिटी ID UUID हैं
उदाहरण: बैच सेव
POST /membership/people
Authorization: Bearer <token>
[
{ "firstName": "Jane", "lastName": "Doe" },
{ "id": "abc-123", "firstName": "John", "lastName": "Smith" }
]
पहला ऑब्जेक्ट बनाया जाता है (नया); दूसरा अपडेट किया जाता है (id है)।
प्रतिक्रिया प्रारूप
सफल प्रतिक्रियाएँ JSON लौटाती हैं -- या तो एक एकल ऑब्जेक्ट या एक एरे। त्रुटि प्रतिक्रियाएँ मानक HTTP स्टेटस कोड का उपयोग करती हैं:
| कोड | अर्थ |
|---|---|
200 | सफल |
400 | खराब अनुरोध (मान्यता त्रुटियाँ) |
401 | अनधिकृत (गुम/अमान्य टोकन या अपर्याप्त अनुमतियाँ) |
404 | नहीं मिला |
500 | सर्वर त्रुटि |
मान्यता त्रुटियाँ लौटाती हैं:
{
"errors": [
{ "msg": "enter a valid email address", "param": "email", "location": "body" }
]
}
एंडपॉइंट तालिकाएँ कैसे पढ़ें
प्रत्येक मॉड्यूल पृष्ठ एंडपॉइंट को कंट्रोलर के अनुसार व्यवस्थित करता है। तालिकाएँ इन कॉलम का उपयोग करती हैं:
| कॉलम | विवरण |
|---|---|
| Method | HTTP मेथड (GET, POST, DELETE) |
| Path | कंट्रोलर के बेस पथ के सापेक्ष रूट पथ |
| Auth | JWT = Bearer टोकन आवश्यक, Public = कोई प्रमाणीकरण आवश्यक नहीं |
| Permission | आवश्यक अनुमति (जैसे People.Edit)। — का अर्थ है कोई भी प्रमाणित उपयोगकर्ता |
| Description | एंडपॉइंट क्या करता है |
मानक CRUD बेस क्लास को विस्तारित करने वाले कंट्रोलर स्वचालित रूप से चार एंडपॉइंट प्रदान करते हैं: GET / (सभी सूचीबद्ध करें), GET /:id (ID द्वारा प्राप्त करें), POST / (बनाएँ/अपडेट करें), और DELETE /:id (हटाएँ)।
रिपोर्टिंग मॉड्यूल
रिपोर्टिंग मॉड्यूल अन्य मॉड्यूल से अलग तरीके से काम करता है। डेटाबेस-बैक्ड CRUD के बजाय, यह डिस्क पर JSON फ़ाइलों से रिपोर्ट परिभाषाएँ लोड करता है और पैरामीटराइज़्ड SQL क्वेरी निष्पादित करता है।
| Method | Path | Auth | विवरण |
|---|---|---|---|
| GET | /reporting/reports/:keyName | JWT | कुंजी नाम द्वारा रिपोर्ट परिभाषा लोड करें |
| GET | /reporting/reports/:keyName/run | JWT | रिपोर्ट निष्पादित करें और परिणाम लौटाएँ |
रिपोर्ट पैरामीटर क्वेरी स्ट्रिंग मानों के रूप में पास किए जाते हैं (जैसे ?startDate=2024-01-01&endDate=2024-12-31)। churchId पैरामीटर JWT टोकन से स्वचालित रूप से इंजेक्ट किया जाता है। प्रत्येक रिपोर्ट परिभाषा अपनी अनुमति आवश्यकताएँ निर्दिष्ट कर सकती है।
मॉड्यूल अनुक्रमणिका
| मॉड्यूल | बेस पथ | विवरण |
|---|---|---|
| Authentication | /membership/users, /membership/oauth | लॉगिन, पंजीकरण, JWT टोकन, OAuth, अनुमतियाँ |
| Membership | /membership/* | लोग, चर्च, समूह, परिवार, भूमिकाएँ, फ़ॉर्म, सेटिंग्स |
| Attendance | /attendance/* | कैम्पस, सेवाएँ, सत्र, विज़िट, चेक-इन रिकॉर्ड |
| Content | /content/* | पृष्ठ, उपदेश, इवेंट, फ़ाइलें, गैलरी, बाइबल, स्ट्रीमिंग |
| Giving | /giving/* | दान, फंड, भुगतान गेटवे, सदस्यताएँ |
| Messaging | /messaging/* | वार्तालाप, सूचनाएँ, डिवाइस, SMS |
| Doing | /doing/* | योजनाएँ, कार्य, असाइनमेंट, ऑटोमेशन, शेड्यूलिंग |