खोज…


नौकर

सर्वेंट टाइप-स्तर पर एपीआई घोषित करने के लिए एक पुस्तकालय है: और फिर

  • सर्वर लिखें (नौकर का यह हिस्सा एक वेब फ्रेमवर्क माना जा सकता है),
  • ग्राहक कार्य प्राप्त करें (हैस्केल में),
  • अन्य प्रोग्रामिंग भाषाओं के लिए ग्राहक कार्य उत्पन्न करते हैं,
  • अपने वेब अनुप्रयोगों के लिए प्रलेखन उत्पन्न करें
  • और अधिक...

नौकर के पास एक संक्षिप्त रूप से शक्तिशाली एपीआई है। एक साधारण एपीआई कोड की बहुत कम लाइनों में लिखा जा सकता है:

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}

import Data.Text
import Data.Aeson.Types
import GHC.Generics
import Servant.API

data SortBy = Age | Name

data User = User {
  name :: String,
  age :: Int
} deriving (Eq, Show, Generic)

instance ToJSON User  -- automatically convert User to JSON

अब हम अपना एपीआई घोषित कर सकते हैं:

type UserAPI = "users" :> QueryParam "sortby" SortBy :> Get '[JSON] [User]

कि हम बेनकाब करना चाहते हैं जो राज्यों /users के लिए GET क्वेरी परम अनुरोध sortby प्रकार के SortBy और के प्रकार JSON लौट User जवाब में।

अब हम अपने हैंडलर को परिभाषित कर सकते हैं:

-- This is where we'd return our user data, or e.g. do a database lookup
server :: Server UserAPI
server = return [User "Alex" 31]

userAPI :: Proxy UserAPI
userAPI = Proxy

app1 :: Application
app1 = serve userAPI server

और मुख्य विधि जो पोर्ट 8081 पर सुनती है और हमारे उपयोगकर्ता एपीआई की सेवा करती है:

main :: IO ()
main = run 8081 app1

नोट, स्टैक में सर्वेंट में बुनियादी एपीआई उत्पन्न करने के लिए एक टेम्पलेट है, जो बहुत जल्दी उठने और चलने के लिए उपयोगी है।

Yesod

यसोड प्रोजेक्ट को निम्नलिखित टेम्प्लेट का उपयोग करके stack new के साथ बनाया जा सकता है:

  • yesod-minimal । सरलतम यसोद मचान।
  • yesod-mongo । DB इंजन के रूप में MongoDB का उपयोग करता है।
  • yesod-mysql MySQL का उपयोग DB इंजन के रूप में करता है।
  • yesod-postgres । DBg इंजन के रूप में PostgreSQL का उपयोग करता है।
  • yesod-postgres-fay । DBg इंजन के रूप में PostgreSQL का उपयोग करता है। फ्रंट-एंड के लिए फे भाषा का उपयोग करता है।
  • yesod-simple । यदि आपको डेटाबेस की आवश्यकता नहीं है, तो अनुशंसित टेम्पलेट का उपयोग करें।
  • yesod-sqlite । DB इंजन के रूप में SQlite का उपयोग करता है।

yesod-bin पैकेज yesod निष्पादन योग्य प्रदान करता है, जिसका उपयोग विकास सर्वर को चलाने के लिए किया जा सकता है। ध्यान दें कि आप अपना एप्लिकेशन सीधे भी चला सकते हैं, इसलिए yesod टूल वैकल्पिक है।

Application.hs में कोड होते हैं जो हैंडलर के बीच अनुरोध भेजते हैं। यह डेटाबेस और लॉगिंग सेटिंग्स भी सेट करता है, यदि आपने उनका उपयोग किया है।

Foundation.hs App प्रकार को परिभाषित करता है, जिसे सभी हैंडलर्स के लिए एक वातावरण के रूप में देखा जा सकता है। HandlerT मोनाद में होने के नाते, आप getYesod फ़ंक्शन का उपयोग करके यह मान प्राप्त कर सकते हैं।

Import.hs एक ऐसा मॉड्यूल है जो सामान्‍य रूप से उपयोग किए जाने वाले सामानों को फिर से निर्यात करता है।

Model.hs में टेम्पलेट हास्केल होता है जो DB इंटरैक्शन के लिए उपयोग किए जाने वाले कोड और डेटा प्रकार उत्पन्न करता है। केवल तभी प्रस्तुत करें जब आप DB का उपयोग कर रहे हों।

config/models वह जगह है जहाँ आप अपने DB स्कीमा को परिभाषित करते हैं। Model.hs द्वारा उपयोग किया Model.hs

config/routes वेब एप्लिकेशन के यूआरआई को परिभाषित करता है। मार्ग के प्रत्येक HTTP तरीके के लिए, आपको {method}{RouteR} नामक हैंडलर बनाने की आवश्यकता होगी।

static/ निर्देशिका में साइट के स्थिर संसाधन होते हैं। ये Settings/StaticFiles.hs मॉड्यूल द्वारा बाइनरी में संकलित होते हैं।

templates/ निर्देशिका में शेक्सपियर टेम्प्लेट होते हैं जो अनुरोधों को परोसते समय उपयोग किए जाते हैं।

अंत में, Handler/ डायरेक्टरी में ऐसे मॉड्यूल होते हैं जो मार्गों के लिए हैंडलर को परिभाषित करते हैं।

प्रत्येक हैंडलर IO पर आधारित एक हैंडलर HandlerT क्रिया है। आप अनुरोध मापदंडों, उसके शरीर और अन्य जानकारी का निरीक्षण कर सकते हैं, runDB साथ डीबी पर प्रश्न कर runDB , मनमाना आईओ कर सकते हैं और उपयोगकर्ता को विभिन्न प्रकार की सामग्री वापस कर सकते हैं। HTML की सेवा करने के लिए, defaultLayout फ़ंक्शन का उपयोग किया जाता है जो defaultLayout टेम्प्लेट की स्वच्छ रचना की अनुमति देता है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow