Android: Difference between revisions
Jump to navigation
Jump to search
Line 49: | Line 49: | ||
} | } | ||
</source> | </source> | ||
---- | |||
<source lang="java"> | <source lang="java"> | ||
package org.chorke.academia.beans.endpoint; | package org.chorke.academia.beans.endpoint; | ||
Line 62: | Line 62: | ||
public interface ProductEndpoint { | public interface ProductEndpoint { | ||
String ROOT_ENDPOINT = "https://dev.chorke.org/academia/api/rest/v1.0"; | String ROOT_ENDPOINT = "https://dev.chorke.org/academia/api/rest/v1.0"; | ||
//@Get("/product") | |||
Map<String, Object> getAll(); | |||
//@Get("/product/{id}") | //@Get("/product/{id}") | ||
Line 117: | Line 120: | ||
@Autowired | @Autowired | ||
RestTemplateBuilder builder; | RestTemplateBuilder builder; | ||
//@Get("/product") | |||
@SuppressWarnings("unchecked") | |||
public Map<String, Object> getAll(){ | |||
String uri = UriComponentsBuilder.fromUriString(Actions.GET_PRODUCTS.getUri()) | |||
.queryParam("sort","code") | |||
.queryParam("dir","ASC") | |||
.queryParam("limit",10) | |||
.queryParam("start",0) | |||
.queryParam("page",1) | |||
.build().toUriString(); | |||
return this.getEndpoint() | |||
.getForObject(uri, Map.class); | |||
} | |||
//@Get("/product/{id}") | //@Get("/product/{id}") |
Revision as of 19:12, 23 August 2021
@Rest(rootUrl = "https://api.chorke.org/rest/api", converters = { MappingJackson2HttpMessageConverter.class })
public interface EventsApi {
@Get("/events/{year}/{location}")
EventList getEventsByYearAndLocation(@Path int year, @Path String location);
@Get("/events/{year}/{location}")
EventList getEventsByLocationAndYear(@Path String location, @Path int year);
}
Dependencies
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.androidannotations</groupId>
<artifactId>rest-spring</artifactId>
<version>4.8.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
Delete with Body
package org.chorke.academia.utility;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import java.io.IOException;
import java.net.HttpURLConnection;
public class RestClientFactory extends SimpleClientHttpRequestFactory {
@Override
protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException {
super.prepareConnection(connection, httpMethod);
if("DELETE".equals(httpMethod)) {
connection.setDoOutput(true);
}
}
}
package org.chorke.academia.beans.endpoint;
import org.chorke.academia.utility.RestClientFactory;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.DefaultUriBuilderFactory;
import java.util.Map;
public interface ProductEndpoint {
String ROOT_ENDPOINT = "https://dev.chorke.org/academia/api/rest/v1.0";
//@Get("/product")
Map<String, Object> getAll();
//@Get("/product/{id}")
Map<String, Object> getOne(int id);
//@Delete("/delete/{id}")
Map<String, Object> delete(int id, Map<String, Object> product);
enum Actions {
GET_PRODUCTS("/product"),
GET_PRODUCT("/product/{id}"),
POST_PRODUCT("/product"),
PUT_PRODUCT("/product/{id}"),
DELETE_PRODUCT("/product/{id}");
private String uri;
Actions(String uri){
this.uri = uri;
}
public String getUri() {
return uri;
}
}
default RestTemplate getEndpoint() {
RestTemplate endpoint = new RestTemplate(new RestClientFactory());
endpoint.setUriTemplateHandler(new DefaultUriBuilderFactory(this.getRootUri()));
return endpoint;
}
RestTemplateBuilder getBuilder();
String getRootUri();
}
package org.chorke.academia.beans.endpoint;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.HashMap;
import java.util.Map;
@Component
public class ProductEndpointImpl implements ProductEndpoint {
@Value("${chorke.academia.endpoint.root.uri:}")
String rootUri;
@Autowired
RestTemplateBuilder builder;
//@Get("/product")
@SuppressWarnings("unchecked")
public Map<String, Object> getAll(){
String uri = UriComponentsBuilder.fromUriString(Actions.GET_PRODUCTS.getUri())
.queryParam("sort","code")
.queryParam("dir","ASC")
.queryParam("limit",10)
.queryParam("start",0)
.queryParam("page",1)
.build().toUriString();
return this.getEndpoint()
.getForObject(uri, Map.class);
}
//@Get("/product/{id}")
@SuppressWarnings("unchecked")
public Map<String, Object> getOne(int id){
Map<String, Object> params = new HashMap<>();
params.put("id", id);
return this.getEndpoint()
.getForObject(
Actions.GET_PRODUCT.getUri(),
Map.class, params
);
}
//@Delete("/product/{id}")
@SuppressWarnings("unchecked")
public Map<String, Object> delete(int id, Map<String, Object> product){
HttpEntity<Map<String, Object>> payload = new HttpEntity<>(product);
Map<String, Object> params = new HashMap<>();
params.put("id" , id);
return this.getEndpoint()
.exchange(
Actions.DELETE_PRODUCT.getUri(), HttpMethod.DELETE,
payload, Map.class, params
).getBody();
}
@Override
public RestTemplateBuilder getBuilder() {
return builder;
}
@Override
public String getRootUri() {
rootUri = !StringUtils.isEmpty(rootUri) ? rootUri : ROOT_ENDPOINT;
return rootUri;
}
}
Redmi Note 5
Settings » About Phone » MIUI Version (TAP 7 more Times) Settings » Additional Settings » Scroll Down » Developer Options
Anko Layout
compile 'org.jetbrains.anko:anko-design:0.8.3' compile 'org.jetbrains.anko:anko-appcompat-v7:0.8.3'
Knowledge
%APPDATA%\..\Local\Android\sdk
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
#Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All