"স্বীকৃত উত্তর" কেন কাজ করে ... তবে এটি আমার পক্ষে যথেষ্ট ছিল না
এই স্পেসিফিকেশন কাজ করে। কমপক্ষে swagger-tools
(সংস্করণ 0.10.1) এটিকে বৈধ হিসাবে বৈধ করে।
তবে আপনি যদি অন্য সরঞ্জামগুলি ব্যবহার করেন swagger-codegen
(সংস্করণ ২.১..6) আপনি কিছু অসুবিধা পেতে পারেন, উত্পন্ন ক্লায়েন্টের কাছে যেমন প্রমাণীকরণ সংজ্ঞা থাকে তবে:
this.authentications = {
'Bearer': {type: 'apiKey', 'in': 'header', name: 'Authorization'}
};
পদ্ধতির (শেষ পয়েন্ট) বলার আগে শিরোনামে টোকেনটি পাস করার কোনও উপায় নেই। এই ফাংশন স্বাক্ষর দেখুন:
this.rootGet = function(callback) { ... }
এর অর্থ এই যে, আমি কেবল টোকেন ছাড়াই কলব্যাক (অন্যান্য ক্ষেত্রে ক্যোয়ারী প্যারামিটারগুলি, ইত্যাদি) পাস করি, যা সার্ভারে অনুরোধটির ভুল নির্মাণের দিকে পরিচালিত করে।
আমার বিকল্প
দুর্ভাগ্যক্রমে, এটি "সুন্দর" নয় তবে আমি সোয়াগারে জেডাব্লুটি টোকেন সমর্থন না পাওয়া পর্যন্ত এটি কাজ করে।
দ্রষ্টব্য: যা নিয়ে আলোচনা হচ্ছে
সুতরাং, এটি একটি স্ট্যান্ডার্ড শিরোনামের মতো হ্যান্ডেল প্রমাণীকরণ। উপর path
বস্তু একটি হেডার paremeter যোগ:
swagger: '2.0'
info:
version: 1.0.0
title: Based on "Basic Auth Example"
description: >
An example for how to use Auth with Swagger.
host: localhost
schemes:
- http
- https
paths:
/:
get:
parameters:
-
name: authorization
in: header
type: string
required: true
responses:
'200':
description: 'Will send `Authenticated`'
'403':
description: 'You do not have necessary permissions for the resource'
এটি পদ্ধতি স্বাক্ষরে নতুন প্যারামিটার সহ একটি ক্লায়েন্ট তৈরি করবে:
this.rootGet = function(authorization, callback) {
// ...
var headerParams = {
'authorization': authorization
};
// ...
}
এই পদ্ধতিটি সঠিক উপায়ে ব্যবহার করতে, কেবল "সম্পূর্ণ স্ট্রিং" পাস করুন
// 'token' and 'cb' comes from elsewhere
var header = 'Bearer ' + token;
sdk.rootGet(header, cb);
এবং কাজ করে।