Skocz do zawartości

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Zdjęcie
- - - - -

JSON - API dla serwisu


  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

#1 stolik

stolik
  • 396 postów
  • SkądKatowice, Poland, Poland

Napisano 03 kwietnia 2013 - 18:31

Witajcie, chciałbym zrobić api dla serwisu, które było by realizowane za pomocą JSONa; Na zewnatrz wystawiamy dane, o które są z zewnątrz requesty. Także robione inserty do DB z JSONa. Wszystko realizowane po autoryzacji - klucza dla usera API. Czy coś wiecie na ten temat, macie jakieś wskazówki, materiały ? Bo chciałbym napisać Apkę na iOSa, która by łączyła się z moim serwiswm i wysyłała requesty do niego, a serwis by wysyłał do apki responsy, wszystko realizowane za pomocą JSONa.

#2 wojtkow

wojtkow


  • 6 767 postów
  • Płeć:
  • SkądPoznań

Napisano 03 kwietnia 2013 - 19:57

Zacznij od RestKit (i pewnie na nim skończysz).

#3 nie_z_krakowa

nie_z_krakowa
  • 230 postów

Napisano 04 kwietnia 2013 - 07:15

[...]chciałbym zrobić api dla serwisu, które było by realizowane za pomocą JSONa;
Na zewnatrz wystawiamy dane, o które są z zewnątrz requesty. Także robione inserty do DB z JSONa.

Pogubiłem się. Szukasz podpowiedzi w kwestii strony serwerowej czy klienta?

#4 stolik

stolik
  • 396 postów
  • SkądKatowice, Poland, Poland

Napisano 07 kwietnia 2013 - 14:28

Dzięki za RestKit - wygląda przyzwoicie. Generalnie chodzi mi o rozwiązanie po stronie serwera i klienta, komunikację z obu stron. Klient odpytuje serwer, serwer realizuje dane requesty.

#5 nie_z_krakowa

nie_z_krakowa
  • 230 postów

Napisano 07 kwietnia 2013 - 16:54

W kwestii strony klienckiej w iOS nie podpowiem. Po stronie serwerowej najlepiej napisać serwis REST'owy. Realizuje on dokładnie to co opisałeś. Odbiera żądania od klienta, umożliwia autentykacje, komunikuje się z bazą wysyła odpowiedzi do klienta. Język zależy od hostingu.

#6 aLP

aLP
  • 89 postów
  • Skąd52.229797,21.011781

Napisano 13 kwietnia 2013 - 10:55

Jak będziesz dopiero pisał api i apke to polecam MessagePack
MessagePack: It's like JSON. but fast and small.
Binary JSON
Rozwiązanie szybkie i mega proste.

#7 stolik

stolik
  • 396 postów
  • SkądKatowice, Poland, Poland

Napisano 22 kwietnia 2013 - 20:37

@aLP - ciekawe rozwiązanie, ale na chwilę obecną moim celem jest JSON.

Co do RestKit:
Napotkałem pewien problem, stworzyłem na serwer, gdzie wysyła w odpowiedzi jsona:
{"products":[{"id_product":"1","name":"milk","price":"2.50"}]}


Nie umiem wydrukować na ekran konsoli, w Xcode tych danych:
W Głównym widoku(*.m), w - (void)viewDidLoad, mam:
//Przygotowanie mapy na obiekty
RKObjectMapping * myMapping = [RKObjectMapping mappingForClass:[self class]];
[myMapping addAttributeMappingsFromDictionary:@{
@"id_product" : @"ids",
@"name" : @"product",
@"price" : @"price"
}];

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:myMapping pathPattern:nil keyPath:@"products" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

NSURL *URL = [NSURL URLWithString:@"http://localhost/JSON-iOS/"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[ responseDescriptor ]];
[objectRequestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
RKLogInfo(@"Load collect of all products: %@", mappingResult.array);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Failed with error: %@", error);
}];

[objectRequestOperation start];


w nagłówku mam instancje dla pól mapowania.

Po uruchomieniu skryptu mam w konsoli:
2013-04-22 21:36:35.665 FirstApp[686:c07] I restkit:RKLog.m:34 RestKit logging initialized...
2013-04-22 21:36:35.870 FirstApp[686:3807] ADDRESPONSE - ADDING TO MEMORY ONLY: http://localhost/JSON-iOS/
2013-04-22 21:36:35.877 FirstApp[686:c07] ADDRESPONSE - ADDING TO MEMORY ONLY: http://localhost/JSON-iOS/
2013-04-22 21:36:35.880 FirstApp[686:c07] I restkit.network:RKHTTPRequestOperation.m:154 GET 'http://localhost/JSON-iOS/'
2013-04-22 21:36:35.881 FirstApp[686:c07] I restkit.network:RKHTTPRequestOperation.m:185 GET 'http://localhost/JSON-iOS/' (200 OK) [0.0005 s]
2013-04-22 21:36:35.882 FirstApp[686:c07] I app:ViewController.m:37 Load collect of all products: (
    "<ViewController: 0x767d330>"
)

w jaki sposób dobrać się do wartości kluczy z jsona ?

#8 hexio

hexio
  • 2 postów

Napisano 08 maja 2013 - 20:15

Na którego iOS targetujesz aplikację? Od 5.x masz możliwość natywnego parsowania JSON bez zewnętrznych bibliotek :)




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych