2016-10-04 4 views
-1

Я новичок и изучаю web apisWeb API - Как получить доступ к API с помощью токена

Это пример API, который обеспечивает доступ к базе данных книг.

Есть 2 операции выборки API, доступная для 2-х база данных, говорит, ABC и XYZ

/api/{abc or xyz}/books Это возвращают книги, которые доступны

/api/{abc or xyz}/book/{ID} Это возвращает деталь одной книги Чтобы получить доступ к API вы Мне нужен токен API.

Также как и любой RealWorld API это может быть странным поведение временами

Я хочу построить веб-приложение, чтобы позволить клиентам получить самую низкую цену для книг из этих двух поставщиков в C#.

Предоставленный вам токен API не должен подвергаться публике. питания следующий маркер в заголовке, чтобы получить доступ к API х-доступ-маркер: xxxxxxxxxxxxxxxxxxxxxx

Я создал контроллер с

public class MoviesController : ApiController 
{ 
Movies[] movies = new Movies[] 
{ 
    new Movies { Id = 1, Name = "Star Wars", Category = "Action", Price = 1 }, 
    new Movies { Id = 2, Name = "Spiderman", Category = "Action", Price = 3.75M }, 
    new Movies { Id = 3, Name = "Bridget Bones", Category = "Comedy", Price = 16.99M } 
}; 

public IEnumerable<Movies> GetAllProducts() 
{ 
    return movies; 
} 

public IHttpActionResult GetProduct(int id) 
{ 
    var movie = movies.FirstOrDefault((p) => p.Id == id); 
    if (movie == null) 
    { 
     return NotFound(); 
    } 
    return Ok(movie); 
} 

}

модель класса с

public class Movies 
{ 
public int Id { get; set; } 
public string Name { get; set; } 
public string Category { get; set; } 
public decimal Price { get; set; } 

и мой взгляд как

<body> 
<div> 
<h2>All Movies</h2> 
<ul id="movies" /> 
</div> 
<div> 
<h2>Search by ID</h2> 
<input type="text" id="movieId" size="5" /> 
<input type="button" value="Search" onclick="find();" /> 
<p id="movie" /> 
</div> 

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js">/script> 
<script> 
var uri = 'api/movies'; 
$(document).ready(function() { 
// Send an AJAX request 
$.getJSON(uri) 
    .done(function (data) { 
    // On success, 'data' contains a list of products. 
    $.each(data, function (key, item) { 
     // Add a list item for the product. 
     $('<li>', { text: formatItem(item) }).appendTo($('#movies')); 
    }); 
    }); 
}); 

function formatItem(item) { 
return item.Name + ': $' + item.Price; 
} 

function find() { 
var id = $('#movieId').val(); 
$.getJSON(uri + '/' + id) 
    .done(function (data) { 
    $('#movie').text(formatItem(data)); 
    }) 
    .fail(function (jqXHR, textStatus, err) { 
    $('#movie').text('Error: ' + err); 
    }); 
    } 
    </script> 

Я не понимаю, как использовать аутентификацию на токене для этого. Допустим, я хочу предоставить следующий токен в заголовке для доступа к токенам доступа к API: xxxxxxxxxxxxxxxxxxxxxx. Как мне это сделать?

Любая помощь будет оценена по достоинству. Спасибо заранее.

+0

Посмотрите в [OAuth2] (https://www.visualstudio.com/en-ca/docs/integrate/get -started/авт/OAuth). Кроме того, сделайте некоторое исследование, прежде чем спрашивать. –

ответ

0

Вы можете реализовать аутентификацию на основе токена, используя ASP.Net Web API 2 и OWIN.

Вот link с пошаговыми инструкциями по его реализации.

Best of Luck .. !!!

Пожалуйста, не забудьте пометить его как «Ответ», если это поможет вам ..

+0

Цените свой ответ @AKR. Я прошел через эту ссылку, не то, что я ищу. Я наткнулся на эту [ссылку] (http://www.primaryobjects.com/2015/05/08/token-based-authentication-for-web-service-apis-in-c-mvc-net/) хотел подтвердить если эта проверка подлинности является правильным методом для того, что я хочу достичь? Также, как я могу сравнить книгу или фильм на основе ID из разных источников (сайтов) – coder

+0

Все зависит от того, чего вы хотите достичь. Я не совсем уверен в ваших требованиях, поэтому я не могу рекомендовать, какой из них лучше всего подходит для вы, но только пара мыслей. В ссылке, которую я отправил, токен генерируется каркасом, а не нами. Но тот, который вы упомянули, похоже, мы пишем код для генерации токена.Я сомневаюсь, понимаю ли я второй вопрос. Вы говорите о сравнении двух объектов одного типа (например: Book1 с Book2)? – AKR

+0

Я не понимаю, как использовать аутентификацию маркера. Допустим, я хочу предоставить следующий токен в заголовке для доступа к токенам доступа к API: xxxxxxxxxxxxxxxxxxxxxx. Как мне это сделать? Это приложение будет работать как skyscanner. Ваш и сравнивается с разными сайтами (через api), и получает самые дешевые тарифы и выводит их на экран. Я хочу создать приложение подобного типа. Я буду вводить идентификатор 5, который является идентификатором для кинозвезд, он сравнивается через разные сайты (через api) и должен получать мне самую дешевую цену этого фильма и дисплея. как происходит это сравнение. – coder

Смежные вопросы