Отладка запроса на книжную полку Goodreads - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время я создаю приложение Swift для iOS с использованием API, и я столкнулся с чем-то напуганным. Я пытаюсь циклически перемещаться по массиву полок и извлекать данные для каждой полки, используя цикл for с методом reviews.list API Goodreads .

Вот как это выглядит:

func getBooksFromShelf(_ oauthswift: OAuth1Swift, userID: String, shelf: Shelf, name: String) {
        let _ = oauthswift.client.get(
            "https://www.goodreads.com/review/list?v=2",
            parameters: ["key": developerKey, "id": userID, "shelf": name, "sort": "date_added"],
            success: { response in
                let xml = SWXMLHash.parse(response.data)
                for review in xml["GoodreadsResponse"]["reviews"]["review"].all {
                    let book = review["book"]
                    let bookID = book["id"].element!.text
                    let bookTitle = book["title"].element!.text
                    let bookCoverURL = URL(string: book["image_url"].element!.text)

                    var bookAuthors = "by "
                    for author in book["authors"].all {
                        bookAuthors += author["author"]["name"].element!.text
                    }

                    let newBook = Book.init(id: bookID, title: bookTitle, authors: bookAuthors, cover: bookCoverURL)
                    shelf.books.append(newBook)
                }
        },

Проблема заключается в том, что каждый прогон цикла возвращает данные для https://www.goodreads.com/review/list/USER_ID_HERE.xml?key=DEVELOPER_KEY_HERE&v=2, как будто в запрос вообще не было добавлено никаких параметров. Но когда я заменяю переменную name строкой полки, я знаю, что она существует - как и «текущее чтение» - я получаю правильный результат https://www.goodreads.com/review/list/USER_ID_HERE.xml?key=DEVELOPER_KEY_HERE&v=2&shelf=currently-reading.

Я пытался удалить массив параметров и сам создать строку URL, но это тоже не работает. Я видел эту тему , но это не совсем то же самое, поскольку я не получаю сообщение об ошибке, просто неверный URL. Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...