Добрый день! Помогите, прислали тестовое задание, а я только начинаю свой путь программиста, не могу разобраться с API, необходимо получить товары на сегодня для выбранной категории.
Срочно. Выручайте. Работа с API сайта producthunt.com
Параметрах отправляете, что хотите получить там дока большая все написано.
P.s на вопрос работали ли вы с апи вы наверное соврали, что да?
И что за контора если не секрет?
Я не писал что работал с API, только изучал курсы на данном сайте.
Документацию я нашел.
Мне нужна помощь в составлении правильного запроса.
В уроках все просто, а вот на практике что-то не получается((
Я для вас написал простой пример.
Заходите на свой сайт, регистрируетесь. Переходите в меню в API DASHBOARD. Там регистрируете свое приложение.
Потом открываете документацию по авторизации и читаете.
//: Playground - noun: a place where people can play
import PlaygroundSupport
import Foundation
PlaygroundPage.current.needsIndefiniteExecution = true
// Route POST /v1/oauth/token
let authClientOnly = "/v1/oauth/token"
var urlComponents = URLComponents()
urlComponents.scheme = "https"
urlComponents.host = "api.producthunt.com"
urlComponents.path = authClientOnly
let sessionConfiguration = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfiguration)
var request = URLRequest(url: urlComponents.url!)
request.httpMethod = "POST"
// Headers
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("api.producthunt.com", forHTTPHeaderField: "Host")
// Body
let bodyObject = [
"client_id" : "1ff039a7b0457e6ce098ac7e1616385badc30c65755969f1fb45021af5fc2b03",
"client_secret" : "2e755648a60aa83aac4a6844305d50487d2352eed693cd600c4e35f72df323fe",
"grant_type" : "client_credentials"
]
request.httpBody = try! JSONSerialization.data(withJSONObject: bodyObject, options: [])
let task = session.dataTask(with: request) { (data, response, error) in
let json = try? JSONSerialization.jsonObject(with: data!, options: [])
print(json)
}
task.resume()
Print вам выдаст примерно такой ответ:
Optional({
"access_token" = b58b91ed123f5a75cd80dea48f13f2fb0bf26f85db3dca1e6ee3cc1ec693cd43;
scope = public;
"token_type" = bearer;
})
Это обычно json. Парсите, сохраняете куда-то access_token.
Далее. https://api.producthunt.com/v1/docs/posts/posts_index_get_the_tech_posts_of_today
Поля в запросе заполняются аналогично. access_token у вас теперь есть.
А что вы будете делать, когда вам дадут другое задание? Путь программиста состоит в поиске решения. Если вы не в состоянии его найти или написать, возможно Вам стоит набраться больше практического опыта.
lodar, если Вы такой умный, то подскажите а где этого опыта набираться???
Вот я как-раз на реальных задания и набираюсь опыта, пытаясь их решить. Прошу помощи, изучаю и запоминаю пути решения того что на данный момент выполнить не могу.
Да хотя бы попросите у Ивана задачки по swift. Их там больше 100 кажется было. Гугл в помощь. Разбейте свои задачи на части и разбирайтесь, конкретно под ваш топик: что такое json, как с ним работать, , сериализация структур в json и обратно, что такое хттп, что с ним делать.
А ваш топик начинался так: ребята решите за меня задачку, хочу стать программистом, но вы таки напишите за меня.
Вы не правы.
Я согласен что задачки можно решать и набивать руку, но когда решаешь задачки которые используются в реальной жизни получается продуктивнее.
К примеру если взять урок Ивана по API там используется один вид построения запроса, а в моей задаче другой вид и “ntwf” мне подсказал. Теперь на основании его примера я строю свои запросы для получения данных.
Также по поводу опыта, можно учиться годами на задачках и когда придет время сделать приложение по реальному заказу, то возникнет уйму вопросов, на которые придется также искать ответы в интернете или спрашивать у людей которые уже имели опыт с этим работать. Когда в работе есть наставник (человек который подскажет, направит) так гораздо эффективнее.