রিসোর্টলি ডিজাইন / লগইন বা / রেজিস্টার সংস্থানগুলি?


122

আমি একটি ওয়েব অ্যাপ্লিকেশন ডিজাইন করছিলাম এবং তারপরে আমার এপিআই কীভাবে একটি বিশ্রাম ওয়েব পরিষেবা হিসাবে ডিজাইন করা উচিত সে সম্পর্কে চিন্তাভাবনা বন্ধ করে দিলাম। আপাতত, আমার ইউআরআই এর বেশিরভাগই জেনেরিক এবং বিভিন্ন ওয়েব অ্যাপ্লিকেশনগুলিতে প্রয়োগ হতে পারে:

GET  /logout   // destroys session and redirects to /
GET  /login    // gets the webpage that has the login form
POST /login    // authenticates credentials against database and either redirects home with a new session or redirects back to /login
GET  /register // gets the webpage that has the registration form
POST /register // records the entered information into database as a new /user/xxx
GET  /user/xxx // gets and renders current user data in a profile view
POST /user/xxx // updates new information about user

আমার মনে হচ্ছে এসও এবং গুগলকে ঘুরে দেখার পরে আমি এখানে অনেক ভুল করছি।

শুরু করে /logout, সম্ভবত যেহেতু আমি আসলে GETকিছুই না - এটি অধিবেশনটি ধ্বংস করতে এবং তারপরে পুনঃনির্দেশ POSTকরার অনুরোধ করা আরও উপযুক্ত । এবং শব্দটি থাকা উচিত ?/logoutGET/logout

কি সম্পর্কে /loginএবং /register। আমি পরিবর্তন /registerকরতে পারি /registrationতবে এতে আমার পরিষেবা মৌলিকভাবে কীভাবে কাজ করে তা পরিবর্তন করে না - যদি এর আরও গভীর সমস্যা থাকে।

আমি এখন লক্ষ্য করেছি যে আমি কখনই কোনও /userসংস্থান উন্মুক্ত করি না । সম্ভবত এটি কোনওভাবে কাজে লাগানো যেতে পারে। উদাহরণস্বরূপ, ব্যবহারকারীকে নিন myUser:

foo.com/user/myUser

অথবা

foo.com/user

ইউআরআই-এ শেষ ব্যবহারকারীর অতিরিক্ত অতিরিক্ত ভারবোসিটির প্রয়োজন নেই। তবে কোনটি দৃষ্টিভঙ্গি করে বেশি আবেদন করছে?

আমি এই বিশ্রাম ব্যবসায়ের বিষয়ে এখানে আরো কিছু প্রশ্ন লক্ষ্য করেছি, তবে সম্ভব হলে আমি এখানে যা রেখেছি তাতে কিছু দিকনির্দেশনার সত্যই প্রশংসা করব।

ধন্যবাদ!

হালনাগাদ:

আমি এর উপর কিছু মতামতও চাই:

/user/1

বনাম

/user/myUserName

উত্তর:


63

একটি জিনিস বিশেষত REST- ফুল না হিসাবে স্টিক আউট হয়: লগ আউট করার জন্য একটি জিইটি অনুরোধ ব্যবহার।

( http://en.wikedia.org/wiki/Hypertext_Transfer_Protocol#Safe_methods থেকে )

কিছু পদ্ধতি (উদাহরণস্বরূপ, হেড, জিইটি, অপশন এবং ট্র্যাক) নিরাপদ হিসাবে সংজ্ঞায়িত করা হয় যার অর্থ তারা কেবল তথ্য পুনরুদ্ধারের উদ্দেশ্যে তৈরি এবং সার্ভারের অবস্থার পরিবর্তন করা উচিত নয়। অন্য কথায়, লগিং, ক্যাশিং, ব্যানার বিজ্ঞাপন পরিবেশন করা বা ওয়েব কাউন্টারকে বাড়িয়ে দেওয়ার মতো তুলনামূলক নিরপেক্ষ প্রভাবের বাইরেও তাদের পার্শ্ব প্রতিক্রিয়া থাকা উচিত নয়। [...]

সার্ভারের দ্বারা [... এইচ] ওলিং [জিইটি অনুরোধগুলির] কোনওভাবেই প্রযুক্তিগতভাবে সীমাবদ্ধ নয়। অতএব, অযত্ন বা ইচ্ছাকৃত প্রোগ্রামিং সার্ভারে অ-তুচ্ছ পরিবর্তন করতে পারে। এটি নিরুৎসাহিত করা হয়েছে, কারণ এটি ওয়েব ক্যাচিং, অনুসন্ধান ইঞ্জিন এবং অন্যান্য স্বয়ংক্রিয় এজেন্টদের জন্য সমস্যা সৃষ্টি করতে পারে [...]

লগ আউট এবং পুনঃনির্দেশ হিসাবে, আপনার লগআউট ইউআরআইতে একটি পোস্ট থাকতে পারে 303 প্রতিক্রিয়া পোস্ট-লগআউট পৃষ্ঠায় পুনর্নির্দেশ করতে।

http://en.wikipedia.org/wiki/Post/Redirect/Get

http://en.wikipedia.org/wiki/HTTP_303

ইউআরএল ডিজাইন উদ্বেগগুলির সমাধান করতে সম্পাদনা করুন:

"আমি কীভাবে আমার সংস্থানগুলি ডিজাইন করব?" আমার কাছে একটি গুরুত্বপূর্ণ প্রশ্ন; "আমি কীভাবে আমার ইউআরএল ডিজাইন করব?" দুটি ক্ষেত্রে বিবেচ্য:

ব্যবহারকারীরা যে URL গুলি দেখতে পাবে সেগুলি সম্ভব হলে খুব কুশ্রী এবং অর্থবহ হওয়া উচিত নয়; আপনি যদি কোনও সংস্থার অনুরোধে কুকিজ প্রেরণ করতে চান তবে অন্যদের নয়, আপনি আপনার পাথ এবং কুকি পথের কাঠামো তৈরি করতে চাইবেন।

যদি JRandomUserতার নিজের প্রোফাইলটি দেখতে চান এবং আপনি URL এর চেয়ে সুন্দর হতে চান foo.com/user/JRandomUserবা foo.com/user/(JRandom's numeric user id here)কেবল নিজের ব্যবহারকারীর নিজস্ব তথ্য দেখার জন্য আপনি একটি পৃথক URL তৈরি করতে পারেন:

GET foo.com/profile /*examines cookies to figure out who 
                     * is logged in (SomeUser) and then 
                     * displays the same response as a
                     * GET to foo.com/users/SomeUser.
                     */

আমি এই বিষয়ে জ্ঞানের চেয়ে অনেক সহজেই অজ্ঞতার দাবি করব, তবে এখানে কয়েকটি সংস্থান নকশা বিবেচনা করা হচ্ছে:

  1. গ্রাহক: কোন সংস্থানগুলি ব্রাউজারে সরাসরি দেখা, এক্সএইচআর এর মাধ্যমে লোড করা, বা অন্য কোনও ধরণের ক্লায়েন্ট দ্বারা অ্যাক্সেস করা বোঝানো হয়?
  2. অ্যাক্সেস / পরিচয়: প্রতিক্রিয়া কি কুকিজ বা রেফারারের উপর নির্ভর করে?

1
দুর্দান্ত উত্তর, ধন্যবাদ! যদি আমি আপনার পৃথক ইউআরএল পরামর্শ ( GET foo.com/profile/) বাস্তবায়ন করতে যাচ্ছিলাম তবে এটি মোমো প্রস্তাবিত হিসাবে উপস্থাপনা স্তরটির অংশ হবে? অন্য কথায়, সেই GETঅনুরোধটি ঠিক কী ফিরে আসবে? একটি ওয়েব পৃষ্ঠা বা কিছু জেএসওএন?
কিউকম

2
আহ, আমি এখন দেখতে পাচ্ছি। মোমোর উত্তর সত্যিই বিষয়গুলি পরিষ্কার করেছে। সুতরাং একটি RESTful API একাধিক প্ল্যাটফর্মের করার অনুমতি নির্মান করা হয় GET, POST, PUT, এবং DELETEসম্পদ। একটি ওয়েবসাইট হ'ল এপিআই অ্যাক্সেস করার অন্য একটি প্ল্যাটফর্ম। অন্য কথায়, ওয়েবসাইট ইউআরএল ডিজাইন RESTful API ডিজাইনের চেয়ে সম্পূর্ণ আলাদা। আমি এখনও ভুল যদি না বলুন।
কিউকম

হ্যাঁ, আপনার আরএসটি এপিআইএলকে ইউআরএলগুলির একটি সেট এবং আপনার ওয়েবসাইটকে আলাদা সেট করুন। তারপরে আপনার ওয়েবসাইট ইউআরএল আপনাকে যথাযথ এইচটিএমএল + জাভাস্ক্রিপ্ট ফিরিয়ে দেবে যাতে পৃষ্ঠাটি আপনার এপিআই এর URL টি ক্লায়েন্ট হিসাবে কাজ করতে উপযুক্ত XMLHttp অনুরোধ করে।
এলিস্ব্বেবেন

129

ইউআরএলগুলি তৈরির জন্য গাইডলাইন হিসাবে RESTful ব্যবহার করা যেতে পারে এবং আপনি সেশন এবং ব্যবহারকারীদের সংস্থানগুলি তৈরি করতে পারেন :

  • GET /session/new লগইন ফর্ম আছে যে ওয়েবপৃষ্ঠা পায়
  • POST /session ডাটাবেসের বিরুদ্ধে শংসাপত্র প্রমাণীকরণ
  • DELETE /session সেশন নষ্ট করে এবং / এ পুনঃনির্দেশ
  • GET /users/new ওয়েবপৃষ্ঠায় রেজিস্ট্রেশন ফর্ম রয়েছে
  • POST /users নতুন / ব্যবহারকারী / এক্সএক্সএক্স হিসাবে ডাটাবেসে প্রবেশ করা তথ্য রেকর্ড করে
  • GET /users/xxx // একটি প্রোফাইল ভিউতে বর্তমান ব্যবহারকারীর ডেটা পান এবং রেন্ডার করে
  • POST /users/xxx // ব্যবহারকারী সম্পর্কে নতুন তথ্য আপডেট

এগুলি বহুবচন বা একবচন হতে পারে (কোনটি সঠিক তা আমি নিশ্চিত নই)। আমি সাধারণত /usersএকটি ব্যবহারকারী সূচী পৃষ্ঠার জন্য (যেমনটি প্রত্যাশিত) ব্যবহার করেছি এবং /sessionsকে লগ ইন হয়েছে তা দেখার জন্য (প্রত্যাশার মতো)।

কোনও সংখ্যার ( /users/43বনাম /users/joe) এর পরিবর্তে ইউআরএলে নাম ব্যবহার করা সাধারণত কোনও প্রযুক্তিগত প্রয়োজনীয়তা নয়, ব্যবহারকারী বা অনুসন্ধান ইঞ্জিনগুলির সাথে আরও বন্ধুত্বপূর্ণ হওয়ার ইচ্ছা দ্বারা চালিত হয়। হয় ঠিক আছে, তবে আমি আপনাকে ধারাবাহিকভাবে সুপারিশ করব।

আমি মনে করি আপনি যদি নিবন্ধক / লগইন / লগআউট বা যান sign(in|up|out), এটি বিশ্রামের পরিভাষার সাথে কাজ করে না।


6
অসাধারণ! আমি পছন্দ করি আপনি কীভাবে এই সংস্থানগুলিকে নাম দিয়েছিলেন; এটা বেশ পরিষ্কার। যদিও, আমি কি শুনেছি থেকে সংযোজন করা হয় না /newকরতে GET /session/অ RESTful? আমি শুনেছি ক্রিয়া বিশেষত HTTP ক্রিয়া (বামে হয় GET, POSTইত্যাদি)।
কিউকম

2
@ জ্যাচ নতুন কোনও ক্রিয়া নয়। এক্ষেত্রে এটি সেশনের একটি সাবসোর্স।
কুগেল

ডিলেট / সেশনে কোন সেশনটি মুছবেন তা কীভাবে নির্ধারণ করবেন? কার্ল মুছে ফেলার অনুরোধে কুকিজ বা কোনও প্যারামও প্রেরণ করে না। আমি ধরে নিই - কেবল ডিলিট / সেশন / সেশনআইডি ব্যবহার করতে? আরেকটি প্রশ্ন হ'ল পিওএসটি / সেশনে সেশন আইডি কীভাবে ফিরে আসবেন এবং কোন ফর্ম্যাটে।
Tvaroh

9
নিজেকে দুঃখী করা এবং এমন কিছুতে সময় নষ্ট করা যা মোটেই গুরুত্বপূর্ণ নয় বিশ্রামের উপায়।
জিয়ান চেন

6
ব্যক্তিগতভাবে আমি যে রুটগুলি ফর্মটি ফেরত দেয় (/ নতুন) তা ধারণা পছন্দ করি না। এটি দর্শন এবং ব্যবসায়ের যুক্তির মধ্যে বিচ্ছেদকে ভেঙে দেয়। থা বললেন, / নতুন রুট ছাড়াই প্রস্তাবিতগুলিকে নিখুঁত দেখাচ্ছে।
স্ক্যাজ

60

সেশনগুলি বিশ্রামের নয়

  • হ্যা আমি জানি. এটি সম্পন্ন হচ্ছে, সাধারণত ওআউথ দিয়ে, তবে সত্যই সেশনগুলি আরামদায়ক নয়। আপনার / লগইন / লগআউট সংস্থানটি প্রাথমিকভাবে করা উচিত নয় কারণ আপনার সেশন করা উচিত নয়।

  • আপনি যদি এটি করতে যাচ্ছেন তবে এটিকে বিশ্রাম দিন। সংস্থানগুলি বিশেষ্য এবং / লগইন এবং / লগআউট বিশেষ্য নয়। আমি / সেশন সঙ্গে যেতে হবে। এটি সৃষ্টি এবং মুছে ফেলা আরও প্রাকৃতিক ক্রিয়া করে।

  • সেশনগুলির জন্য পোষ্ট বনাম জিইটি করা সহজ। আপনি যদি ভেরিয়েবল হিসাবে ব্যবহারকারী / পাসওয়ার্ড প্রেরণ করছেন তবে আমি পোস্ট ব্যবহার করব কারণ আমি ইউআরআইয়ের অংশ হিসাবে পাসওয়ার্ডটি প্রেরণ করতে চাই না। এটি লগগুলিতে প্রদর্শিত হবে এবং তারের বাইরে সম্ভবত প্রকাশিত হবে। জিইটি আরগস সীমাবদ্ধতায় সফ্টওয়্যার ব্যর্থ হওয়ার ঝুঁকিটিও চালান।

  • আমি সাধারনত REST পরিষেবাদি সহ বেসিক অথ বা কোনও অথ ব্যবহার করি না।

ব্যবহারকারী তৈরি করা হচ্ছে

  • এটি একটি সংস্থান, সুতরাং আপনার প্রয়োজন / নিবন্ধন করা উচিত নয়।

    • পোস্ট / ব্যবহারকারী - যদি অনুরোধকারী আইডিটি নির্দিষ্ট না করতে পারে তবে একটি ব্যবহারকারী তৈরি করে
    • পুট / ইউজার / এক্সএক্সএক্স - আপনাকে আইডিটি আগে থেকেই জানা আছে ধরে ধরে কোনও ব্যবহারকারী তৈরি বা আপডেট করুন
    • জিইটি / ব্যবহারকারী - এক্স ব্যবহারকারী আইডির তালিকা করে
    • জিইটি / ব্যবহারকারী / এক্সএক্সএক্সএক্স - আইডি এক্সএক্সএক্সএক্স ব্যবহারকারী ব্যবহারকারীর বিশদটি জোগায়
    • মোছা / ব্যবহারকারী / এক্সএক্সএক্সএক্স - আইডি এক্সএক্সএক্সএক্স সহ ব্যবহারকারী মুছুন
  • কোন ধরণের আইডি ব্যবহার করা কঠিন প্রশ্ন। আপনাকে স্বতন্ত্রতা প্রয়োগের বিষয়ে, পুরানো আইডির পুনঃব্যবহার সম্পর্কে চিন্তা করতে হবে যা মুছে ফেলা হয়েছিল। উদাহরণস্বরূপ, আইডির পুনর্ব্যবহারযোগ্য (যদি সম্ভব হয় তবে) যদি আপনি এই আইডিগুলিকে ব্যাকএন্ডে বিদেশী কী হিসাবে ব্যবহার করতে চান না। ব্যাকএন্ডের প্রয়োজনীয়তাগুলি হ্রাস করার জন্য আপনার বাহ্যিক / অভ্যন্তরীণ আইডি রূপান্তরের জন্য অনুসন্ধান থাকতে পারে।


6
এটি সেরা উত্তর। / লগইন এবং / লগআউট সংস্থান নয় এবং REST এর ধারণাটি ভেঙে দেয়।
wle8300

5
প্রমাণীকরণ! = অধিবেশন
ডায়েটবুদ্ধ

1
হ্যাঁ, ফিল্ডিংয়ের থিসিসটি 5.1.3 বিভাগে উল্লেখ করেছে যে "[গুলি] প্রবন্ধটি [...] সম্পূর্ণভাবে ক্লায়েন্টের উপরে রাখা হয়।" আরও, আমি যুক্তি দিয়ে বলব যে, আদর্শভাবে, প্রমাণীকরণও সার্ভারের দিক থেকে স্টেটলেস হওয়া উচিত, অর্থাত্ একটি ডাটাবেসে সক্রিয় "প্রমাণীকরণের টিকিট" সংরক্ষণের পরিবর্তে সার্ভারকে কেবল শংসাপত্রের ভিত্তিতে একটি প্রমাণীকরণ শংসাপত্রটি যাচাই করতে সক্ষম হওয়া উচিত, উদাহরণস্বরূপ একটি ব্যক্তিগত কী এর সাথে একত্রে স্ব-নিহিত ক্রিপ্টোগ্রাফিক টোকেন ব্যবহার করে। সুতরাং, সেশন রিসোর্সের পরিবর্তে কেউ একটি / প্রমাণীকরণের সংস্থান প্রবর্তন করতে পারে, তবে এটি সত্যিই সমস্যাটি সমাধান করে না ...
রেনার

আসলে, / লগইন এবং / লগআউট বিশেষ্য। আমি ধরে নিচ্ছি আপনি / লগইন এবং / লগ_আউট সম্পর্কে ভাবছেন।
টিগারটু

21

আমি কেবল আমার ক্লায়েন্টদের জন্য বিভিন্ন আরইএসটি ওয়েব পরিষেবাদির সংহতকরণের আমার অভিজ্ঞতা থেকে কথা বলতে যাচ্ছি, এটি মোবাইল অ্যাপ্লিকেশানের জন্য বা সার্ভারের সাথে সার্ভারে যোগাযোগের পাশাপাশি অন্যদের জন্য আরএসটি এপিআই তৈরির জন্য ব্যবহৃত হয়। এখানে আমি অন্য ব্যক্তির REST এপিআই এবং সেইসাথে আমরা নিজেরাই তৈরি করেছি এমন কিছু পর্যবেক্ষণ দেওয়া হয়েছে:

  • আমরা যখন এপিআই বলি, তখন এটি সাধারণত প্রোগ্রামিং ইন্টারফেসের সেটকে বোঝায় এবং উপস্থাপনা স্তরটির প্রয়োজন হয় না। REST হ'ল ডেটা কেন্দ্রিক এবং উপস্থাপনা চালিত নয়। এটি বলেছে যে বেশিরভাগ REST রিটার্নের ডেটা JSON বা XML আকারে এবং খুব কমই একটি নির্দিষ্ট উপস্থাপনা স্তর ফিরে আসে। এই বৈশিষ্ট্যটি (সরাসরি ওয়েবপৃষ্ঠায় নয় ডেটা ফিরিয়ে দেওয়ার) মাল্টি-চ্যানেল বিতরণ করার জন্য REST ক্ষমতা দিয়েছে। মানে একই ওয়েবসার্চটি এইচটিএমএল, আইওএস, অ্যান্ড্রয়েডে এমনকি সার্ভারের সাথে সার্ভারের সংমিশ্রণেও রেন্ডার করা যেতে পারে।
  • HTML এবং REST উভয়কেই URL হিসাবে একত্রিত করা খুব বিরল। ডিফল্টরূপে REST হ'ল সেবা হিসাবে চিন্তাভাবনা এবং উপস্থাপনা স্তর না থাকে having যাঁরা ওয়েব সার্ভিসগুলি গ্রাস করেন তাদের কাজটি যা তারা চান তার অনুযায়ী যে পরিষেবাগুলি কল করে সেগুলি থেকে ডেটা রেন্ডার করা। সেই লক্ষ্যে নীচে আপনার ইউআরএল বেশিরভাগ আরএসইএস ভিত্তিক ডিজাইনের সাথে সামঞ্জস্য করে না যা আমি এতদূর সম্মুখীন হয়েছি (বা যারা ফেসবুক বা টুইটার থেকে আসছে তাদের মতো মান)
GET / নিবন্ধন // ওয়েবপৃষ্ঠায় রেজিস্ট্রেশন ফর্ম রয়েছে
  • পূর্ববর্তী বিন্দু থেকে অব্যাহত রেখে, REST ভিত্তিক পরিষেবাটি পুনর্নির্দেশ করা যেমন অস্বীকার করা হয়েছে তেমন অস্বাভাবিক (এবং আমার মুখোমুখি হয়নি):
জিইটি / লগআউট // সেশনটি নষ্ট করে এবং / এ পুনঃনির্দেশ করে
পোষ্ট / লগইন // ডাটাবেসের বিরুদ্ধে শংসাপত্রগুলি প্রমাণীকরণ করে এবং হয় নতুন সেশনে হোম পুনঃনির্দেশ করে অথবা লগইনে ফিরে ডাইরেক্ট করে দেয়
 

আরআরইএসটি যেমন পরিষেবা হিসাবে ডিজাইন করা হয়েছে, লগইন এবং লগআউটের মতো ফাংশন সাধারণত সাফল্য / ব্যর্থতার ফলাফল (সাধারণত জেএসএন বা এক্সএমএল ডেটা ফর্ম্যাটে) প্রত্যাবর্তন করে যা ভোক্তার ব্যাখ্যা করবে। আপনি যেমন উল্লেখ করেছেন তেমন ব্যাখ্যায় যথাযথ ওয়েবপৃষ্ঠায় পুনর্নির্দেশ অন্তর্ভুক্ত থাকতে পারে

  • REST এ, ইউআরএল নেওয়া হয় এমন ক্রিয়াগুলি নির্দেশ করে। যে কারণে, আমাদের যতটা সম্ভব অস্পষ্টতা দূর করা উচিত। আপনার ক্ষেত্রে বৈধ যেমন জিইটি এবং পোষ্ট উভয়ই একই পথ রয়েছে (যেমন / নিবন্ধক) যা বিভিন্ন ক্রিয়া সম্পাদন করে, যেমন নকশাগুলি প্রদত্ত পরিষেবাদিতে অস্পষ্টতার পরিচয় দেয় এবং আপনার পরিষেবার ভোক্তাকে বিভ্রান্ত করতে পারে। উদাহরণস্বরূপ, আপনি নীচে প্রবর্তন করেছেন এমন URL গুলি REST ভিত্তিক পরিষেবার জন্য আদর্শ নয়
GET / নিবন্ধন // ওয়েবপৃষ্ঠায় রেজিস্ট্রেশন ফর্ম রয়েছে
পোস্ট / নিবন্ধন // নতুন / ব্যবহারকারী / এক্সএক্সএক্সএক্স হিসাবে ডেটাবেজে প্রবেশ করা তথ্য রেকর্ড করে

এগুলি আমি যা মোকাবিলা করেছি তার কয়েকটি পয়েন্ট। আমি আশা করি এটি আপনার জন্য কিছু অন্তর্দৃষ্টি সরবরাহ করতে পারে।

এখন পর্যন্ত আপনার আরএসইটি বাস্তবায়নের জন্য, এগুলি হ'ল সাধারণ প্রয়োগ যা আমার মুখোমুখি হয়েছিল:

  • জিইটি / লগআউট  
    

    ব্যাকএন্ডে লগআউট কার্যকর করুন এবং অপারেশনের সাফল্য / ব্যর্থতা নির্দেশ করার জন্য জেএসএনকে ফিরিয়ে দিন

  • পোস্ট / লগইন
    

    ব্যাকএন্ডে শংসাপত্র জমা দিন। সাফল্য / ব্যর্থতা ফিরে আসুন। যদি সফল হয় তবে সাধারণত এটি সেশন টোকেনের পাশাপাশি প্রোফাইলের তথ্যও ফিরিয়ে দেয়।

  • পোস্ট / নিবন্ধন করুন
    

    ব্যাকএন্ডে নিবন্ধন জমা দিন। সাফল্য / ব্যর্থতা ফিরে আসুন। যদি সফল হয় তবে সাধারণত সফল লগইনের মতোই আচরণ করা হয় বা আপনি স্বতন্ত্র পরিষেবা হিসাবে নিবন্ধকরণ করতে বেছে নিতে পারেন

  • জিইটি / ব্যবহারকারী / এক্সএক্সএক্সএক্স
    

    ব্যবহারকারীর প্রোফাইল পান এবং ব্যবহারকারীর প্রোফাইলের জন্য JSON ডেটা ফর্ম্যাটটি ফিরিয়ে দিন

  • পোস্ট / ব্যবহারকারী / এক্সএক্সএক্স 
    // এর নাম পরিবর্তন করা হয়েছে 
    পোস্ট / আপডেট ইউজার / এক্সএক্সএক্স
    

    JSON ফর্ম্যাট হিসাবে আপডেট হওয়া প্রোফাইল তথ্য পোস্ট করুন এবং ব্যাকএন্ডে তথ্য আপডেট করুন। কলারে সাফল্য / ব্যর্থতা ফিরে আসুন


3
হ্যাঁ, আপনি যদি এইচটিএমএল ভিত্তিক অ্যাপের (জাভাস্ক্রিপ্ট এবং অ্যাজেএক্সের মাধ্যমে) আপনার আরএসটি এপিআই সংহত করছেন, তবে জাভাস্ক্রিপ্ট দ্বারা জেএসএন স্থানীয়ভাবে পার্স করা হওয়ায় আপনি প্রচুর উপকার পাবেন। অ্যান্ড্রয়েড / জাভাতে, এক্সএমএলের তুলনায় জেএসএন পার্স করার পক্ষে সহজ এবং আরও সহজ for
মোমো

15
জিইটি / লগআউট বিপজ্জনক। জিইটি আদর্শবান হওয়া উচিত। এছাড়াও ব্রাউজারগুলি <a> hrefs উপস্থাপন করতে পছন্দ করে, যা আপনাকে লগ আউট করবে!
কুগেল

4

আমি বিশ্বাস করি এটি প্রমাণীকরণের জন্য একটি বিশ্রামপ্রণালী is লগইন এর জন্য আপনি ব্যবহার করেন HttpPut। কী সরবরাহ করা হলে এই HTTP পদ্ধতিটি তৈরির জন্য ব্যবহার করা যেতে পারে এবং বারবার কলগুলি আদর্শবান হয়। লগঅফের জন্য, আপনি একই HttpDeleteপদ্ধতিটি পদ্ধতির অধীনে নির্দিষ্ট করেছেন । কোনও ক্রিয়া ব্যবহার করা হয়নি। যথাযথ সংগ্রহ বহুবচন। এইচটিটিপি পদ্ধতিগুলি উদ্দেশ্যটিকে সমর্থন করে।

[HttpPut]
[Route("sessions/current")]
public IActionResult LogIn(LogInModel model) { ... }

[HttpDelete]
[Route("sessions/current")]
public IActionResult LogOff() { ... }

যদি ইচ্ছা হয় আপনি সক্রিয় জন্য বর্তমানের বিকল্প করতে পারে।


1

আমি টুইটারের অনুরূপ একটি ব্যবহারকারীর অ্যাকাউন্ট ইউআরএল ব্যবহার করার পরামর্শ দেব যেখানে ব্যবহারকারীর অ্যাকাউন্ট ইউআরএল এমন কিছু হবে যা foo.com/myUserNameআপনি আমার টুইটার অ্যাকাউন্টে URL- https://twitter.com/joelbyler এর সাথে পেতে পারেন

পোষ্টের প্রয়োজনবোধে লগআউট সম্পর্কে আমি একমত নই। আপনার এপিআইর অংশ হিসাবে আপনি যদি কোনও সেশন বজায় রাখতে চলেছেন তবে ইউআইডি আকারে একটি সেশন আইডি এমন কিছু হতে পারে যা ব্যবহারকারীর উপর নজর রাখতে এবং ব্যবস্থা নেওয়া হচ্ছে যে এটি অনুমোদিত কিনা তা নিশ্চিত করতে ব্যবহার করা যেতে পারে। তারপরে একটি জিইটিও সেশন আইডি বরাবর রিসোর্সে যেতে পারে।

সংক্ষেপে আমি আপনাকে এটি সহজ রাখার পরামর্শ দিচ্ছি, ইউআরএলগুলি একটি স্মরণীয় হতে হবে short


প্রশ্নটি এপিআই সংস্থান সম্পর্কে about আপনার উত্তরটি উপস্থাপনা স্তর সম্পর্কে।
হেনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.