Page History
참고 URL : https://www.kerstner.at/2012/07/shortening-strings-using-base-62-encoding/
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
package social.api; import org.apache.tomcat.util.codec.binary.Base64; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import social.data.*; import java.nio.ByteBuffer; import java.util.Base64.Encoder; @Controller @RequestMapping(path="/mgr") public class LinkGenerator { @Autowired // This means to get the bean called userRepository // Which is auto-generated by Spring, we will use it to handle the data private LinkRepository linkRepository; static int incNum = 0; protected String getUniqueKey() { byte[] uniquyebytes = ByteBuffer.allocate(4).putInt(incNum).array(); String strHash = Base64.encodeBase64URLSafeString( uniquyebytes ); incNum++; return strHash; } @GetMapping(path="/linkadd") // Map ONLY GET Requests public @ResponseBody String addNewLink ( @RequestParam String uid , @RequestParam String cid , @RequestParam String renderurl , @RequestParam String imageurl , @RequestParam String title , @RequestParam String content) { //String hashStr = Long.toHexString( (uid+cid).hashCode() ).toUpperCase(); String hashStr = getUniqueKey(); LinkInfo linkInfo = new LinkInfo(); linkInfo.setUrlKey(hashStr); linkInfo.setCid(cid); linkInfo.setRenderurl(renderurl); linkInfo.setUid(uid); linkInfo.setImageurl(imageurl); linkInfo.setTitle(title); linkInfo.setContent(content); linkRepository.save(linkInfo); return linkInfo.getUrlKey(); } @GetMapping(path="/linkall") public @ResponseBody Iterable<LinkInfo> getAllUsers() { // This returns a JSON or XML with the users return linkRepository.findAll(); } } |
...