$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?> एक्स्पो आणि एपिक

एक्स्पो आणि एपिक इंटिग्रेशनसह Android ऍप्लिकेशन्समधील PKCE समस्यांचे निराकरण करणे

एक्स्पो आणि एपिक इंटिग्रेशनसह Android ऍप्लिकेशन्समधील PKCE समस्यांचे निराकरण करणे
एक्स्पो आणि एपिक इंटिग्रेशनसह Android ऍप्लिकेशन्समधील PKCE समस्यांचे निराकरण करणे

एक्सपो सह PKCE त्रुटींचा सामना करत आहात? एपिकशी कनेक्ट होण्यासाठी तुम्हाला काय माहित असणे आवश्यक आहे ते येथे आहे

बांधताना ए Android ॲप ज्यासाठी सुरक्षित प्रमाणीकरण आवश्यक आहे, जसे की Epic सारख्या आरोग्य सेवा प्रणालींशी जोडलेले, विकासक अनेकदा अनन्य आव्हानांना सामोरे जातात. PKCE (कोड एक्सचेंजसाठी प्रूफ की) योग्यरित्या कॉन्फिगर करणे ही सामान्य समस्यांपैकी एक आहे. ही त्रुटी निराशाजनक असू शकते, विशेषत: जेव्हा प्रत्येक कॉन्फिगरेशन योग्य दिसते परंतु तरीही तुम्हाला अवैध किंवा गहाळ पॅरामीटर्सशी संबंधित त्रुटी संदेश प्राप्त होतात.

या प्रकरणात, विकासक काम करत आहेत एक्सपो-ऑथ-सत्र एक्सपोमध्ये "असुरक्षित रीडायरेक्टसाठी PKCE आवश्यक आहे" असे सांगणारी एरर येऊ शकते, जे पुनर्निर्देशित URI स्थानिकरित्या कसे कॉन्फिगर केले जाते यावरून उद्भवू शकते. सेट केल्यानंतरही कोडचॅलेंज आणि codeVerifier अचूकपणे, काही घटक चुकीचे कॉन्फिगर केले असल्यास ही त्रुटी कायम राहू शकते.

या त्रुटींचे निराकरण करण्यासाठी PKCE कसे कार्य करते आणि तुमच्या ॲपचे सुरक्षा पॅरामीटर्स Epic प्लॅटफॉर्मच्या आवश्यकतांशी जुळतात याची खात्री करणे आवश्यक आहे. प्रमाणीकरण प्रक्रिया सुरळीतपणे चालते याची खात्री करण्यासाठी हा लेख संभाव्य उपाय तोडण्यास मदत करेल.

जर तुम्ही या समस्येवर अडकले असाल आणि काय गहाळ आहे असा विचार करत असाल तर तुम्ही एकटे नाही आहात! आम्ही PKCE त्रुटीची सामान्य कारणे शोधू आणि ती द्रुतपणे दुरुस्त करण्यात आणि आत्मविश्वासाने तुमचे ॲप तयार करण्यात मदत करण्यासाठी टिपा देऊ. 🚀.

आज्ञा वापराचे उदाहरण
useAuthRequest प्रतिसाद प्रकार, क्लायंट आयडी आणि एंडपॉइंट्ससह PKCE साठी विशिष्ट पॅरामीटर्ससह प्रमाणीकरण विनंती आरंभ करते. एपिक ऑथरायझेशन सर्व्हरला पाठवण्यासाठी विनंती पॅरामीटर सेट करून सुरक्षित अधिकृततेसाठी OAuth प्रवाह व्यवस्थापित करण्यात ही कमांड थेट मदत करते.
CodeChallengeMethod.S256 PKCE आव्हानासाठी हॅशिंग पद्धत परिभाषित करते. "S256" हे SHA-256 हॅशिंग मानक आहे, जे Epic एकत्रीकरणासारख्या सुरक्षा-संवेदनशील ऍप्लिकेशनसाठी आवश्यक आहे आणि हे सुनिश्चित करते की कोड व्हेरिफायर अधिकृततेदरम्यान योग्यरित्या एन्क्रिप्ट केले आहे.
pkceChallenge() PKCE codeChallenge आणि codeVerifier जोडी व्युत्पन्न करते. सुरक्षित PKCE प्रवाह सेट करण्यासाठी ही आज्ञा आवश्यक आहे, कारण ती क्लायंटला सर्व्हरद्वारे सुरक्षितपणे प्रमाणीकृत करण्यासाठी आवश्यक असलेले अद्वितीय कोड प्रदान करते.
makeRedirectUri एक्स्पो वातावरणाशी संबंधित एक पुनर्निर्देशित URI व्युत्पन्न करते, जे ॲपवर पुन्हा प्रमाणीकरण प्रवाह स्थानिकीकरण आणि रूट करण्यात मदत करते. एक्स्पो-आधारित ॲप्ससाठी प्रमाणीकरण पुनर्निर्देशन प्रभावीपणे हाताळण्यासाठी हा आदेश महत्त्वपूर्ण आहे.
authorizationEndpoint अधिकृतता सर्व्हरसाठी URL निर्दिष्ट करते जेथे वापरकर्त्याला प्रमाणीकरण करण्यासाठी निर्देशित केले जाते. Epic च्या OAuth सर्व्हरसाठी अधिकृतता विनंत्या योग्य ठिकाणी पाठवल्या गेल्या आहेत याची खात्री करण्यासाठी ही कमांड useAuthRequest फंक्शनमध्ये एंडपॉइंट सेट करते.
tokenEndpoint प्रवेश टोकनसाठी अधिकृतता कोडची देवाणघेवाण करण्यासाठी एंडपॉइंट परिभाषित करते. ही आज्ञा OAuth प्रवाहामध्ये महत्त्वपूर्ण आहे कारण ती API प्रवेशासाठी वापरल्या जाणाऱ्या ऍक्सेस टोकन मिळविण्याच्या विनंतीला निर्देशित करते.
promptAsync प्रमाणीकरण प्रॉम्प्ट ॲसिंक्रोनसपणे ट्रिगर करते. ही आज्ञा वास्तविक अधिकृतता प्रक्रिया सुरू करते, एपिक प्रमाणीकरण सर्व्हरसह वापरकर्ता परस्परसंवाद हाताळण्यासाठी आवश्यक बनवते.
useEffect साइड इफेक्ट्स हाताळण्यासाठी आणि अधिकृतता प्रवाह पूर्ण झाल्यानंतर प्रमाणीकरण परिणाम तपासण्यासाठी वापरला जातो. परिणाम स्थितीचा (यश किंवा त्रुटी) मागोवा घेण्यासाठी आणि ॲपमध्ये त्यानुसार हाताळण्यासाठी हा आदेश महत्त्वाचा आहे.
responseType PKCE OAuth प्रवाहासाठी "कोड" वर सेट केलेल्या, अधिकृतता सर्व्हरकडून अपेक्षित प्रतिसादाचा प्रकार परिभाषित करते. हा आदेश क्लायंटला एक ऑथोरायझेशन कोड मिळाल्याची खात्री करतो, जो नंतर ऍक्सेस टोकनसाठी एक्सचेंज केला जातो.
scopes ॲपने अधिकृतता सर्व्हरकडून विनंत्या केलेल्या विशिष्ट परवानग्या किंवा संसाधनांची यादी करते, उदा. वापरकर्ता-विशिष्ट आरोग्य सेवा डेटामध्ये प्रवेश करण्यासाठी fhirUser. ही आज्ञा केवळ आवश्यक संसाधनांवर प्रवेश मर्यादित करण्यात मदत करते.

एपिक एपीआय इंटिग्रेशनमध्ये पीकेसीई ऑथेंटिकेशनसाठी एक्सपो-ऑथ-सेशन वापरणे

वरील स्क्रिप्ट्स Epic च्या सुरक्षित हेल्थकेअर API ला कनेक्ट करणाऱ्या एक्सपो ॲपमध्ये PKCE (कोड एक्सचेंजसाठी प्रूफ की) प्रमाणीकरण हाताळण्यासाठी डिझाइन केल्या आहेत. एक्सपो-ऑथ-सेशन लायब्ररी वापरून, विकसक Epic च्या आवश्यकतांसाठी विशिष्ट पॅरामीटर्ससह सुरक्षित, लवचिक मार्गाने OAuth प्रक्रिया सेट करू शकतात. PKCE येथे आवश्यक आहे कारण ते अधिकृतता प्रक्रियेत सुरक्षिततेचा अतिरिक्त स्तर जोडते, विशेषत: संवेदनशील आरोग्य सेवा डेटा हाताळताना महत्त्वाचे. उदाहरणार्थ, जेव्हा एखाद्या आरोग्य सेवा प्रदात्याला त्यांच्या वैद्यकीय नोंदींमध्ये प्रवेश अधिकृत करण्याची आवश्यकता असते, तेव्हा PKCE वापरणे हे सुनिश्चित करण्यात मदत करते की या विनंतीशी छेडछाड केली जाऊ शकत नाही. सह AuthRequest वापरा फंक्शन, ही स्क्रिप्ट विनंती पॅरामीटर्स सेट करते जी ॲपला एपिकच्या ऑथोरायझेशन सर्व्हरला पाठवायची असते, ज्यामध्ये ग्राहक आयडी (ॲप ओळखण्यासाठी), अ URI पुनर्निर्देशित करा, आणि PKCE कोड आव्हान.

या स्क्रिप्टचा आणखी एक महत्त्वाचा भाग आहे pkce आव्हान फंक्शन, जे PKCE प्रवाहासाठी आवश्यक कोड आव्हान आणि कोड पडताळणी मूल्ये व्युत्पन्न करते. हे कार्य सुनिश्चित करते की प्रत्येक सत्र अनन्यपणे सुरक्षित आहे, खुले इंटरनेट कनेक्शन वापरताना ते असणे आवश्यक आहे, जसे की सार्वजनिक सेटिंग्जमध्ये जेथे डेटा अधिक असुरक्षित आहे. makeRedirectUri कमांड नंतर ॲपचे रीडायरेक्ट URI कॉन्फिगर करण्यासाठी वापरली जाते, जी मूलत: Epic च्या सर्व्हरला सांगते की वापरकर्ते प्रमाणीकृत केल्यानंतर कुठे पुनर्निर्देशित करायचे. येथे, आम्ही एक्सपो ॲप वातावरणात विशेषत: कार्य करण्यासाठी पुनर्निर्देशित URI फॉरमॅट केलेले पाहतो, जे अद्वितीय आहे कारण ते स्थानिक आणि उत्पादनात प्रमाणीकरण हाताळण्यास अनुमती देते. हे स्वरूप विशेषतः लोकलहोस्ट किंवा सिम्युलेटरवर ॲप्सची चाचणी करणाऱ्या डेव्हलपरसाठी उपयुक्त आहे, वापरकर्त्यांना साइन इन करणाऱ्यांसाठी सहज आणि सुरक्षित अनुभव मिळेल. 🛡️

स्क्रिप्टचे इतर पॅरामीटर्स, जसे की अधिकृतता एंडपॉइंट आणि टोकन एंडपॉइंट, Epic च्या अधिकृतता प्रक्रियेसाठी आवश्यक असलेले विशिष्ट अंतिम बिंदू निर्दिष्ट करा. ऑथरायझेशन एंडपॉईंट हे आहे जेथे वापरकर्त्यांना लॉगिन करण्यासाठी पाठवले जाते आणि टोकनएंडपॉईंट हे आहे जेथे ऍक्सेस टोकनसाठी अधिकृतता कोडची देवाणघेवाण केली जाते. हे सेटअप अखंड वापरकर्ता अनुभवासाठी महत्त्वपूर्ण आहे; त्याशिवाय, वापरकर्त्यांना चुकीच्या कॉन्फिगर केलेल्या एंडपॉइंट्ससह समस्या येऊ शकतात, परिणामी तुटलेली किंवा असुरक्षित प्रमाणीकरण प्रवाह. यातील एक व्यावहारिक परिस्थिती एक चिकित्सक त्यांच्या ॲपवरील रुग्णांच्या माहितीचे पुनरावलोकन करण्यासाठी Epic च्या FHIR API मध्ये प्रवेश करेल. हे एंडपॉइंट योग्यरितीने कॉन्फिगर केले असल्यास, ते डेटावर अधिकृत प्रवेशासह अखंडपणे परत ॲपवर पुनर्निर्देशित केले जातात.

शेवटी, promptAsync विनंती ॲसिंक्रोनसपणे कार्यान्वित करण्यासाठी वापरली जाते, याचा अर्थ वापरकर्त्याच्या प्रमाणीकरणाची प्रतीक्षा करत असताना ॲप फ्रीज होत नाही. हे कार्य मूलत: वास्तविक परस्परसंवाद नियंत्रित करते जेथे ॲप वापरकर्त्याला एपिक लॉगिनवर पुनर्निर्देशित करते आणि नंतर त्यांच्या प्रमाणीकरण प्रतिसादाची प्रतीक्षा करते. व्यवहारात, हे वापरकर्त्यांना ॲप प्रतिसाद देत नसल्यासारखे वाटण्यापासून प्रतिबंधित करते, जे उच्च-गुणवत्तेचा वापरकर्ता अनुभव राखण्यासाठी विशेषतः महत्वाचे आहे. एकत्रितपणे, या कमांड्स एक सुव्यवस्थित आणि सुरक्षित PKCE प्रमाणीकरण प्रवाह तयार करतात, ज्यामुळे विश्वसनीय, वापरकर्ता-अनुकूल अनुप्रयोग तयार करताना उच्च नियमन केलेल्या आरोग्य सेवा क्षेत्रात काम करणे सोपे होते. 📲

एपिक इंटिग्रेशनसाठी एक्सपोसह तयार केलेल्या Android ॲप्समध्ये PKCE त्रुटी हाताळणे

PKCE कॉन्फिगरेशन Epic च्या प्रमाणीकरण आवश्यकतांशी सुसंगत असल्याची खात्री करण्यासाठी ही स्क्रिप्ट JavaScript आणि एक्सपो-ऑथ-सेशन लायब्ररीचा फायदा घेते.

import { useAuthRequest, CodeChallengeMethod, makeRedirectUri } from 'expo-auth-session';
import pkceChallenge from 'pkce-challenge';
const { codeChallenge, codeVerifier } = pkceChallenge();
const redirectUri = makeRedirectUri({ scheme: 'exp' });
const [request, result, promptAsync] = useAuthRequest(
    {
        usePKCE: true,
        responseType: 'code',
        clientId: 'epicClientId',
        redirectUri,
        scopes: ['fhirUser'],
        codeChallengeMethod: CodeChallengeMethod.S256,
        codeChallenge,
        extraParams: { aud: 'my FHIR R4 URL' }
    },
    {
        authorizationEndpoint: 'https://auth.epic.com/authorize',
        tokenEndpoint: 'https://auth.epic.com/token'
    }
);
const handleAuth = async () => {
    const authResult = await promptAsync();
    if (authResult.type === 'success') {
        console.log('Authentication successful:', authResult);
    } else {
        console.error('Authentication failed:', authResult.error);
    }
};

पर्यायी उपाय: URI हाताळणी पुनर्निर्देशित करा

URI सेटअप आणि त्रुटी हाताळणी सुधारण्यासाठी एक्सपो-ऑथ-सेशनसह टाइपस्क्रिप्ट वापरणे

PKCE कॉन्फिगरेशनसाठी युनिट चाचणी

PKCE कॉन्फिगरेशन सेटअपच्या चाचणीसाठी जेस्ट वापरणे

import { useAuthRequest } from 'expo-auth-session';
import pkceChallenge from 'pkce-challenge';
import { renderHook } from '@testing-library/react-hooks';
test('PKCE setup test', async () => {
    const { codeChallenge, codeVerifier } = pkceChallenge();
    const [request, result, promptAsync] = useAuthRequest(
        {
            usePKCE: true,
            responseType: 'code',
            clientId: 'testClientId',
            redirectUri: 'exp://localhost:8081',
            scopes: ['fhirUser'],
            codeChallengeMethod: 'S256',
            codeChallenge,
        },
        {
            authorizationEndpoint: 'https://auth.epic.com/authorize',
            tokenEndpoint: 'https://auth.epic.com/token'
        }
    );
    expect(request).toBeTruthy();
    expect(codeChallenge).toBeTruthy();
    expect(promptAsync).toBeInstanceOf(Function);
});

Epic API सह वर्धित सुरक्षिततेसाठी एक्स्पोमध्ये PKCE कॉन्फिगरेशन ऑप्टिमाइझ करणे

एपिक सारख्या आरोग्य सेवा प्रणालींशी सुरक्षितपणे कनेक्ट करणे आवश्यक असलेली ॲप्स तयार करताना, सामान्य प्रमाणीकरणातील त्रुटी टाळण्यासाठी PKCE सेटअप फाइन-ट्यून करणे महत्त्वाचे आहे. जरी PKCE सुरक्षेचा अतिरिक्त स्तर जोडत असले तरी, विशेषत: स्थानिक चाचणी वातावरणाशी व्यवहार करताना, त्यास सूक्ष्म कॉन्फिगरेशनची आवश्यकता असू शकते. द URI पुनर्निर्देशित करा येथे त्रुटींचा एक सामान्य स्रोत आहे. Epic च्या OAuth सर्व्हरसाठी, उदाहरणार्थ, रीडायरेक्ट URI नोंदणीकृत असणे आणि अनुप्रयोगात वापरलेल्या गोष्टींशी जुळणे आवश्यक आहे. एक्सपोमध्ये पुनर्निर्देशित यूआरआय सेट केल्याने काहीवेळा समस्या उद्भवू शकतात, विशेषत: स्थानिक विकास वातावरणात जेथे एक्सपो विशिष्ट URL वापरते (जसे की exp://192.168.x.x) जे कदाचित नोंदणीकृत URI शी जुळत नाहीत.

हे हाताळण्याचा एक मार्ग म्हणजे द्वारे व्युत्पन्न केलेले पुनर्निर्देशित URI सुनिश्चित करणे makeRedirectUri तंतोतंत सर्व्हर सेटिंग्जमध्ये नोंदणीकृत URI आहे, आवश्यक असल्यास कोणत्याही योजना समायोजित करणे. पुनर्निर्देशित URI समस्यांचे निराकरण करण्याचा आणखी एक दृष्टीकोन म्हणजे पर्यावरणीय चलांवर आधारित स्थानिक आणि उत्पादन सेटअप दरम्यान स्विच करणे, जे URI ची पुनर्नोंदणी न करता लवचिकता राखण्यात मदत करू शकते. उदाहरणार्थ, विकसक वापरू शकतो a कॉन्फिगर करण्यायोग्य योजना लोकलहोस्ट चाचणी आणि उत्पादन वातावरण दोन्ही अखंडपणे सामावून घेण्यासाठी एक्सपोमध्ये.

याव्यतिरिक्त, कसे समजून घेणे यशस्वी PKCE प्रमाणीकरणासाठी Epic's API सह कार्य करणे महत्त्वाचे आहे. तुमच्या ॲपच्या वापरकर्त्यांकडून ज्या परवानग्या मागवल्या जातात त्या स्कोप्स परिभाषित करतात. Epic's सारख्या विशिष्ट आरोग्य सेवा डेटा ऍक्सेससाठी योग्य स्कोप निवडणे आवश्यक आहे fhirUser स्कोप, जे प्रमाणीकृत वापरकर्त्यासाठी FHIR डेटामध्ये प्रवेश देते. स्कोप रीडायरेक्शन प्रक्रियेवर देखील परिणाम करू शकतात, त्यामुळे ते योग्यरित्या कॉन्फिगर केले असल्याची खात्री केल्याने PKCE प्रवाहातील त्रुटींची शक्यता कमी होते. या कॉन्फिगरेशनची काळजीपूर्वक अंमलबजावणी केल्याने तुमचे ॲप सुरक्षित डेटा विनंत्या सहजतेने हाताळते याची खात्री करून, अधिक विश्वासार्ह, त्रुटी-मुक्त कनेक्शन तयार करू शकते. 🚀

एपिक इंटिग्रेशनसह एक्सपोमध्ये PKCE कॉन्फिगरेशनबद्दल वारंवार विचारले जाणारे प्रश्न

  1. उद्देश काय आहे useAuthRequest PKCE प्रमाणीकरणात?
  2. useAuthRequest आवश्यक पॅरामीटर्ससह प्रमाणीकरण विनंती सेट करण्यासाठी वापरली जाते, जसे की क्लायंट आयडी, रीडायरेक्ट URI आणि एंडपॉइंट्स, जे PKCE-आधारित OAuth प्रवाह सुरू करण्यासाठी आवश्यक आहेत.
  3. एक्स्पोमधील स्थानिक पुनर्निर्देशित URI सह समस्या मी कशा टाळू शकतो?
  4. पुनर्निर्देशित URI समस्या टाळण्यासाठी, ॲपमधील तुमची पुनर्निर्देशित URI सर्व्हरवर नोंदणीकृत असलेल्याशी जुळत असल्याची खात्री करा. वापरत आहे makeRedirectUri योग्य योजनेमुळे मदत होऊ शकते किंवा स्थानिक आणि उत्पादन सेटअपसाठी यूआरआय स्विच करण्यासाठी पर्यावरणीय चल वापरून पहा.
  5. काय करते pkceChallenge करा, आणि ते का आवश्यक आहे?
  6. pkceChallenge PKCE प्रवाहासाठी आवश्यक असलेले एक अद्वितीय कोड आव्हान आणि कोड सत्यापनकर्ता व्युत्पन्न करते. हे सर्व्हरद्वारे केवळ अधिकृत विनंत्या स्वीकारल्या जातील याची खात्री करून प्रमाणीकरण प्रक्रिया सुरक्षित करते.
  7. मला असुरक्षित पुनर्निर्देशनांबद्दल PKCE त्रुटी का प्राप्त होत आहे?
  8. ही त्रुटी अनेकदा उद्भवते जेव्हा पुनर्निर्देशित URI Epic च्या सर्व्हरवर नोंदणीकृत URI शी जुळत नाही. तुमच्या ॲपचे पुनर्निर्देशन URI सर्व्हरवर सूचीबद्ध असल्याची खात्री करा, विशेषत: स्थानिक चाचणीसाठी जेथे URI बदलू शकतात.
  9. एक्सपोमध्ये मी योग्य स्कोप कसे कॉन्फिगर करू?
  10. एपीआय द्वारे प्रदान केलेल्या डेटा ऍक्सेसची पातळी स्कोप निर्धारित करते. मध्ये स्कोप कॉन्फिगर करा useAuthRequest त्यांना स्कोप ॲरेमध्ये सेट करून, उदा., वापरकर्त्याशी संबंधित FHIR डेटामध्ये प्रवेश करण्यासाठी.

PKCE एकत्रीकरणातील प्रमाणीकरण त्रुटींचे निराकरण करणे

Epic च्या API सह सुरक्षित कनेक्शन तयार करण्यासाठी PKCE योग्यरित्या सेट करणे आवश्यक आहे, विशेषत: कठोर URI जुळणाऱ्या विकास वातावरणात. किरकोळ ऍडजस्टमेंट, जसे की पुनर्निर्देशित URI नोंदणीकृत युआरआयशी तंतोतंत जुळत असल्याची खात्री करणे किंवा पर्यावरण-आधारित URI वापरणे, अनेक PKCE त्रुटी टाळू शकतात.

PKCE च्या बारकावे समजून घेऊन आणि त्यानुसार कॉन्फिगरेशन समायोजित करून, विकासक या त्रुटींचे प्रभावीपणे निराकरण करू शकतात आणि प्रमाणीकरणाचा अधिक सुलभ प्रवाह तयार करू शकतात. योग्य सेटअपसह, ॲप वापरकर्ते त्यांचा डेटा संरक्षित आहे हे जाणून सुरक्षितपणे आणि आत्मविश्वासाने प्रमाणीकृत करू शकतात. 👍

PKCE आणि एक्सपो एकत्रीकरणासाठी स्रोत आणि संदर्भ
  1. पीकेसीईवरील तपशीलवार दस्तऐवजीकरण आणि एक्सपोसह सुरक्षित प्रमाणीकरण प्रवाह: एक्सपो ऑथ सत्र दस्तऐवजीकरण
  2. PKCE सह OAuth 2.0 साठी मार्गदर्शक तत्त्वे आणि सर्वोत्तम पद्धती, विशेषत: मोबाइल ॲप सुरक्षा आवश्यकता हाताळण्यासाठी: RFC 7636: कोड एक्सचेंज (PKCE) साठी प्रूफ की
  3. Epic चे डेव्हलपर दस्तऐवजीकरण, जे Epic च्या API शी कनेक्ट होण्यासाठी आणि PKCE आवश्यकता व्यवस्थापित करण्यासाठी एकत्रीकरण चरणांचे तपशील देते: एपिक FHIR API दस्तऐवजीकरण